初次学习,如有错误还请指正
目录
Set命令
SortedSet类型
Set命令
Redis的Set结构与Java中的HashSet类似,可以看做是一个value为null的HashMap。因为也是一个hash表,
因此具备与HashSet类似的特征:
-
无序
-
元素不可重复
-
查找快
-
支持交集.并集.差集等功能
Set类型的常见命令
- SADD key member…:向set中添加一个或多个元素
sadd s1 a b c
- SREM key member…:移除set中的指定元素
srem s1 a
- SCARD key:返回set中元素的个数
scard s1
- SISMEMBER key member:判断一个元素是否存在于set中
sismember s1 b
- SMEMBERS:获取set中的所有元素
smembers s1
-
SINTER key1 key2…:求key1与key2的交集
-
SDIFF key1 key2…:求key1与key2的差集
-
SUNION key1 key2..:求key1和key2的并集
sadd myset A B C 1 2 3
sadd myset1 a A b 1 4
sinter myset myset1
sunion myset myset1
sdiff myset myset1
SortedSet类型
Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet有些类似,但底层数据结构却差别很大。SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加 hash表。
SortedSet具备下列特性:
-
可排序
-
元素不重复
-
查询速度快
因为SortedSet的可排序特性,经常被用来实现排行榜这样的功能。
SortedSet的常见命令有:
- ZADD key score member:添加一个或多个元素到sorted set ,如果已经存在则更新其score值
zadd stu 85 jack 89 lucy 82 rose 95 tom 78 jerry 92 amy 76 miles
- ZREM key member:删除sorted set中的一个指定元素
zrem stu tom
- ZSCORE key member : 获取sorted set中的指定元素的score值
zscore stu rose
- ZRANK key member:获取sorted set 中的指定元素的排名
zrank stu rose
- ZCARD key:获取sorted set中的元素个数
zcard stu
- ZCOUNT key min max:统计score值在给定范围内的所有元素的个数
zcount stu 0 80
- ZINCRBY key increment member:让sorted set中的指定元素自增,步长为指定的increment值
zincrby stu 2 amy
-
ZRANGE key min max:按照升序排后,获取指定排名范围内的元素
-
ZREVRANGE key min max:按照降序排后,获取指定排名范围内的元素
zrange stu 0 2
zrevrange stu 0 2
- ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素
zrangebyscore stu 0 80
- ZDIFF / ZINTER / ZUNION:求差集 / 交集 / 并集
注意:所有的排名默认都是升序,如果要降序则在命令的Z后面添加REV即可,例如:
- 升序获取sorted set 中的指定元素的排名:ZRANK key member
zrank stu rose
- 降序获取sorted set 中的指定元素的排名:ZREVRANK key memeber
zrevrank stu rose
THE END
如有遗漏,欢迎补充,感谢