目录
- 1 通用命令
- 1.1 keys 检索匹配特定模式的所有键
- 1.2 del 删除指定的key
- 1.3 exists 判断key是否存在
- 1.4 expire 给key设定有效期
- 1.5 ttl 查看key的剩余有效期
- 1.6 key的层级格式
- 2 String类型
- 2.1 set&get
- 2.2 mset&mget 批量操作
- 2.3 incr&incrbyfloat 自增
- 2.4 setnx
- 2.5 setex 添加键值对并设定有效期
- 3 Hash类型
- 3.1 hset&hget 添加或修改key值
- 3.2 hmset&hmget 批量处理
- 3.3 hgetall 返回所有的键值对
- 3.4 hkeys&hvals 取键或者取值
- ## 3.5 hincrby 自增
- 3.6 hsetnx 判断是否存在
- 4 List类型
- 4.1 lpush&rpush 存入数据
- 4.2 lpop&rpop 取出数值
- 4. lrange key star end 取出相应范围的值
- 4.5 blpop&brpop 阻塞取值
- 5 Set类型
- 5.1 单个集合增删改查
- 5.1.1 sadd&srem 添加值&删除值
- 5.1.2 scard 返回元素的个数
- 5.1.3 sisnumber 判断一个元素是否存在
- 5.1.4 smerbers 获取集合中的所有成员
- 5.2 多个集合增删改查
- 5.2.1 sinter 交集
- 5.2.2 sdiff 差集
- 5.2.3 sunion 并集
- 5.3 练习
- 6 SortedSet类型
- 6.1 练习
1 通用命令
1.1 keys 检索匹配特定模式的所有键
KEYS:查看符合模板的所有key,不建议在生产环境设备上使用
1.2 del 删除指定的key
DEL:删除一个指定的key
1.3 exists 判断key是否存在
EXISTS:判断key是否存在
1.4 expire 给key设定有效期
1.5 ttl 查看key的剩余有效期
EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除
TTL:查看一个key的剩余有效期
1.6 key的层级格式
项目名:业务名:类型:id
项目名称叫heima,有user和product两种类型的数据
序列化为json字符串去存储
2 String类型
字符串,最简单的数据类型
2.1 set&get
SET:添加或者修改已经存在的一个String类型的键值对
GET:根据key获取String类型的value
2.2 mset&mget 批量操作
MSET:批量添加多个String类型的键值对
MGET:根据多个key获取多个String类型的value
2.3 incr&incrbyfloat 自增
INCR:让一个整型的key自增1
INCRBY:让一个整型的key自增并指定步长,例如:incrby num 2,让num值自增2
INCRBYFLOAT:让一个浮点类型的数字自增并指定步长
2.4 setnx
SETNX:添加一个String类型的键值对,前提是这个key不存在,否则不执行
2.5 setex 添加键值对并设定有效期
SETEX:添加一个String类型的键值对,并且指定有效期
3 Hash类型
3.1 hset&hget 添加或修改key值
3.2 hmset&hmget 批量处理
3.3 hgetall 返回所有的键值对
3.4 hkeys&hvals 取键或者取值
## 3.5 hincrby 自增
3.6 hsetnx 判断是否存在
4 List类型
双向链表结构
- 有序
- 元素可以重复
- 插入删除速度快
- 查询速度一般
4.1 lpush&rpush 存入数据
4.2 lpop&rpop 取出数值
4. lrange key star end 取出相应范围的值
从左边开始取,start 1号 end 2号
list从0开始编号
4.5 blpop&brpop 阻塞取值
如果一直取不到值,就会阻塞指定的时间为止。
5 Set类型
类似java中的hashset
- 无序
- 元素不可重复
- 查找快
- 支持交集、并集、差集等功能
5.1 单个集合增删改查
5.1.1 sadd&srem 添加值&删除值
5.1.2 scard 返回元素的个数
5.1.3 sisnumber 判断一个元素是否存在
5.1.4 smerbers 获取集合中的所有成员
5.2 多个集合增删改查
5.2.1 sinter 交集
5.2.2 sdiff 差集
5.2.3 sunion 并集
5.3 练习
#1.
sadd zs lisi wangwu zhaoliu
sadd ls wangwu mazi ergou#2.
scard zssinter zs lssdiff zs lssunion zs lssismember zs lisisismember ls zhangsansrem zs lisi
6 SortedSet类型
与java中的treeset有些类似
- 可排序
- 元素不重复
- 查询速度快
可以实现排行榜的功能
6.1 练习
#1.将班级的下列学生得分存入Redis的Sortedset中:Jack 85, Lucy 89, Rose 82, Tom 95, Jerry 78, Amy 92, Miles 76
zadd Students 85 Jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles
#2.删除Tom同学
zrem Students Tom
#3.获取Amy同学的分数
zscore Students Amy
#4.获取Rose同学的排名 因为所有排名都是按分数升序,所以要在前面加rev,且是从0号开始
zrevrank Students Rose
#5.查询80分以下有几个学生
zcount Students 0 80
#6.给Amy同学加2分
zincrby Students Amy 2
#7.查出成绩前3名的同学
zrevrange Students 0 2
#8.查出成绩80分以下的所有同学
zrangebyscore Students 0 80