Redis---学习笔记(更新中)
一.基本命令
- #查看所有键
- keys *
- #查看指定键
- keys key
- #查看模糊键
- keys ke*
- keys ke?
- keys ke[a-z]
- keys ke\?
- #判断键是否存在
- exists key
- #查看键类型
- type key
- #清空所有
- flushall
二.数据类型相关命令
1.字符串:key尽量用【对象类型:属性:值】的规则命名
- # 增/改
- set key
- mset k1 k2 k3
- # 删
- del key
- del k1 k2 k3
- # 查
- get key
- mget k1 k2 k3
- # 统计
- strlen key
- # 加1
- incr key
- # 加n
- incr key n
- # 增加内容(key不存在会创建)
- append key xxx
2.散列:由键 字段 值 组成
- # 增:把一条用户信息保存为散列数据
- hset user name Tom
- hset user age 20
- # 改:名字存错了,重新存
- hset user name Haha
- # 查:查看结果
- hget user name
- # 检查name字段是否存在:如果user中没有name,上一步会报错
- hexists usr name
- # 忘记user中还有哪些字段?
- hkeys user
- hvals user
- # 删掉user中的age
- hdel user age
- # 删掉整个user
- del user
- # 在加一条数据,但是之前的增加数据太麻烦了?
- hmset user name tom age 20
- # 查看数据
- hmget user name age
- # 上面的查看数据还是太麻烦?
- hgetall user
- # 年纪加10岁
- hincrby user age 10
3.列表:双向链表,适合快进快出
- # 增
- lpush number 1 2 3 4 5
- # 查
- lrange number 0 -1 #从第一个索引查询到最后一个索引
- lindex number 0 # 查询指定索引的值
- # 改
- lset number 0 9 # 把列表中的索引为0的值改成9
- linsert number before 9 111 # 在9的前面插入111
- linsert number after 9 222 # 在9的后面插入222
- # 删
- lpop number
- rpop number
- lrem number count value
- ltrim number0 9
- # 把source列表的最后一个元素添加到dest列表的左边
- rpoplpush source dest
- # 统计
- llen number
4.集合
- # 增/改
- sadd myset h j k
- # 查
- smembers myset
- # 删
- spop myset
- del myset
- # 统计
- scard myset
- # 随机取一个
- srandmenber myset
- # 交集
- sinter set1 set2
- # 并集
- sunion set1 set2
- # 差集
- sdiff set1 set2
- sdiffstore storeset set1 set2
5.有序集合
- # 增/改
- zadd userscore 100 h1 200 h2 50 h3 30 h4 70 h5
- zadd userscore 120 h6
- # 查
- zrange userscore 0 -1
- zscore userscore h1
- zrange userscore 0 3 # 按照分数从小到大排序返回索引 0-3 中的元素
- zrange userscore 0 3 withscores
- zrangebyscore userscore 10 50 # 按照分数从小到大排序返回分数为 10-50 中的元素
- zrangebyscore userscore 10 50 withscores
- zrangebyscore userscore 10 50 withscores limit 1 3
- zrevrange # 用于倒序
- zrevrangebyscore # 用于倒序
- # 删
- zrem userscore h1 h2
- zremrangebyrank userscore 1 2 # 删除排名1到2的元素
- #统计
- zcard userscore
- zcount userscore 10 20 统计指定范围分数内的元素个数
- #加减分
- zincrby usrscore -50 h1
三.事务
- multi
- ...
- exec
四.生存时间
- # 只有set操作会影响生存时间
- # 设置过期时间
- set name tom
- expire name 10
- expireat name 时间戳
- # 剩余过期时间
- ttl name
- # 毫秒级
- pexpire name 3000
- pexpireat name 毫秒时间戳
如何限制redis的最大内存使用和删除策略
五.排序
sort命令
六.消息通知
1.队列:
好处:松耦合,易扩展
实现:
- # 伪代码
- lpush tasks t1
- loop
- task = rpop tasks
- if task
- exec task
- else
- wait 1 second
优先级实现:
- /**
* 伪代码- * brpop 是一个会阻塞的命令,可以接受多个键 最后一个参数表示超时时间,0则不超时
- * 如果三个任务键都没有数据,程序会一直阻塞,一旦其中有一个键有数据,程序就会执行,此特性可以实现优先级。那个任务要优先执行,就推送一下,程序就会立刻执行那个任务
- */
- lpush one_tasks t1
- lpush two_tasks t2
- lpush three_tasks t3
- loop
- task = brpop one_tasks two_tasks three_tasks 0
- exec task
2.发布/订阅:
- # redis实例---发布
- publish channel.a hihihi
- #redis实例---订阅
- subscribe channel.a
七.管道
八.管理(持久化 主从 管理工具 安全)
Redis---学习笔记(更新中)的更多相关文章
- Python3学习笔记-更新中
1.Python概况 2.Anaconda安装及使用 3.Pycharm安装及使用 4.Hello World!!! 5.数据类型及类型转换 6.分支结构 7.循环语句 8.异常
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记一:数据结构与对象
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...
- Redis学习笔记(三)Redis支持的5种数据类型的总结
继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...
- Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash
引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...
- Redis学习笔记(2)——Redis的下载安装部署
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...
- redis学习笔记(2)
redis学习笔记第二部分 --配置文件介绍 二,解析redis的配置文件redis.conf常见配置参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通 ...
- Redis学习笔记4-Redis配置具体解释
在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redi ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
随机推荐
- TCL S960T刷机包 乐蛙OS5 稳定版 平滑 优化
ROM简介 乐蛙OS5完美的最终稳定版 Ver14.10.17 温馨提示:一定要明确系统双成一个完整的包画刷入前开发版,否则会造成系统异常,请务必备份手机刷机前的信息和数据,刷机过程中,为了避免因数据 ...
- IO 字符流学习
import java.awt.Frame; import java.io.*; public class filewriter { /** * @param args */ public stati ...
- centos7 Intellij Idea 授权服务器搭建(Jetbrain 家族系列IDE)
centos7 Intellij Idea 授权服务器搭建 1.上传破解文件 我用的是Xshell客户端,有上传功能,但是linux必须先装lrzsz,也可以通过其他方式传到linux上 yum -y ...
- 微信公众平台自定义菜单接口API指南
微信公众平台开发模式自定义菜单接口API指南 简介 开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建.查询和删除等操作. 自定义菜单接口可实现以下类型按钮: clic ...
- win10家庭版连接不上远程桌面
解决方案来自于:https://blog.csdn.net/weixin_39129504/article/details/80303615 这个解决方案的关键: done!不知是否侵权 如有侵权 ...
- OpenGL(一)绘制圆、五角星、正弦曲线
OpenGL入门之"顶点":OpenGL规定,一个多边形必须是一个"凸多边形",即连接多边形上任意两点,其连线都在多边形内部.多边形可以由其边上的端点(这里可称 ...
- WPF 自定义的图表(适用大量数据绘制)下
原文:WPF 自定义的图表(适用大量数据绘制)下 上一篇文章中讲了WPF中自定义绘制大量数据的图标,思路是先将其绘制在内存,然后一次性加载到界面,在后续的调试过程中,发现当数据量到达10W时,移动鼠标 ...
- win7(64bit)使用mingw64配置gtkmm
因为linux命令不熟悉,加上时间不充裕,仍然决定在win7_64bit下开发GUI程序,选择gtkmm是因为: 1. 在图形界面程序中,windows系统当之无愧GUI之王,用户友好性其他OS无法替 ...
- 2-22-实现jsp通过tomcat连接mysql
所有软件的版本如下: MySQL-Connector-Java: mysql-connector-java-5.1.36 Tomcat: apache-tomcat-8.0.26 JDK: jdk-8 ...
- Ajax请求小结
参数说明 ajax请求异步刷新页面=把需要异步刷新的页面单独写成一个.cshtml进行操作$.ajax({}); -------ajax方法.type: ------- 类型,此处为“POST” 还有 ...