Redis 数据结构之有序集合(sort set)
2018-01-14 21:56
826 查看
有序集合sortset的元素包括score(分数,int/float) ,value(成员,string/int/float) ,rank等三个属性,
(1)实际上是score 和 value的映射;
(2)value 在有序集合中必须是唯一的,score可以重复;
(3)rank 从0 开始,score越大,rank值越大,相同分数,value中的字母在字典中越后,rank值越大;
127.0.0.1:6379>
127.0.0.1:6379> get new:counter
"1"
127.0.0.1:6379> incr new:counter
(integer) 2
127.0.0.1:6379> zadd sort-set:2 99 zhangsan
(integer) 1
127.0.0.1:6379> zadd sort-set:2 92.5 lisi
(integer) 1
127.0.0.1:6379> zadd sort-set:2 97.50 wangwu
(integer) 1
zrange 按照字典字母表顺序取出所有元素的value
127.0.0.1:6379> zrange sort-set:2 0 -1
1) "lisi"
2) "wangwu"
3) "zhangsan"
withscores 关键字返回元素的score值
127.0.0.1:6379> zrange sort-set:2 0 -1 withscores
1) "lisi"
2) "92.5"
3) "wangwu"
4) "97.5"
5) "zhangsan"
6) "99"
zrevrange 按照字典字母表倒序顺序取出所有元素的value
127.0.0.1:6379> zrevrange sort-set:2 0 -1 withscores
1) "zhangsan"
2) "99"
3) "wangwu"
4) "97.5"
5) "lisi"
6) "92.5"
zcard 返回有序集合size
127.0.0.1:6379> zcard sort-set:2
(integer) 3
zrank 返回集合中当前元素的rank属性(rank值)
127.0.0.1:6379> zrank sort-set:2 wangwu
(integer) 1
zrangebylex以字典顺序获取集合中元素的value,类似的还有 zrevrangebylex, zlexcount命令
127.0.0.1:6379> zadd sort-set:2 92.5 zhuliu 90 qianqi
(integer) 2
127.0.0.1:6379> zrange sort-set:2 0 -1
1) "qianqi"
2) "lisi"
3) "zhuliu"
4) "wangwu"
5) "zhangsan"
127.0.0.1:6379> zrange sort-set:2 0 -1 withscores
1) "qianqi"
2) "90"
3) "lisi"
4) "92.5"
5) "zhuliu"
6) "92.5"
7) "wangwu"
8) "97.5"
9) "zhangsan"
10) "99"
当元素的value值重复时,zadd 只修改该元素的value值,不添加元素
127.0.0.1:6379> zadd sort-set:2 95 qianqi
(integer) 0
127.0.0.1:6379> zrange sort-set:2 0 -1 withscores
1) "lisi"
2) "92.5"
3) "zhuliu"
4) "92.5"
5) "qianqi"
6) "95"
7) "wangwu"
8) "97.5"
9) "zhangsan"
10) "99"
127.0.0.1:6379> zrevrange sort-set:2 0 -1 withscores
1) "zhangsan"
2) "99"
3) "wangwu"
4) "97.5"
5) "qianqi"
6) "95"
7) "zhuliu"
8) "92.5"
9) "lisi"
10) "92.5"
-表示负无穷,+表示正无穷
127.0.0.1:6379> zrangebylex sort-set:2 - +
1) "lisi"
2) "zhuliu"
3) "qianqi"
4) "wangwu"
5) "zhangsan"
127.0.0.1:6379> zadd sort-set:2 92.5 qianqi
(integer) 0
127.0.0.1:6379> zrangebylex sort-set:2 - +
1) "lisi"
2) "qianqi"
3) "zhuliu"
4) "wangwu"
5) "zhangsan"
字符前的(表示排除该字符串的值,[表示包含该字符串的值
127.0.0.1:6379> zrangebylex sort-set:2 (l [q
1) "lisi"
127.0.0.1:6379> zrangebylex sort-set:2 (l (q
1) "lisi"
127.0.0.1:6379> zrangebylex sort-set:2 (l [z
1) "lisi"
2) "qianqi"
127.0.0.1:6379> zrangebylex sort-set:2 (l (z
1) "lisi"
2) "qianqi"
127.0.0.1:6379> zrangebylex sort-set:2 (lisi (z
1) "qianqi"
127.0.0.1:6379> zrangebylex sort-set:2 (lisi [zhangsan
1) "qianqi"
127.0.0.1:6379> zrangebylex sort-set:2 (lisi [zhuliu
1) "qianqi"
2) "zhuliu"
3) "wangwu"
4) "zhangsan"
(1)实际上是score 和 value的映射;
(2)value 在有序集合中必须是唯一的,score可以重复;
(3)rank 从0 开始,score越大,rank值越大,相同分数,value中的字母在字典中越后,rank值越大;
127.0.0.1:6379>
127.0.0.1:6379> get new:counter
"1"
127.0.0.1:6379> incr new:counter
(integer) 2
127.0.0.1:6379> zadd sort-set:2 99 zhangsan
(integer) 1
127.0.0.1:6379> zadd sort-set:2 92.5 lisi
(integer) 1
127.0.0.1:6379> zadd sort-set:2 97.50 wangwu
(integer) 1
zrange 按照字典字母表顺序取出所有元素的value
127.0.0.1:6379> zrange sort-set:2 0 -1
1) "lisi"
2) "wangwu"
3) "zhangsan"
withscores 关键字返回元素的score值
127.0.0.1:6379> zrange sort-set:2 0 -1 withscores
1) "lisi"
2) "92.5"
3) "wangwu"
4) "97.5"
5) "zhangsan"
6) "99"
zrevrange 按照字典字母表倒序顺序取出所有元素的value
127.0.0.1:6379> zrevrange sort-set:2 0 -1 withscores
1) "zhangsan"
2) "99"
3) "wangwu"
4) "97.5"
5) "lisi"
6) "92.5"
zcard 返回有序集合size
127.0.0.1:6379> zcard sort-set:2
(integer) 3
zrank 返回集合中当前元素的rank属性(rank值)
127.0.0.1:6379> zrank sort-set:2 wangwu
(integer) 1
zrangebylex以字典顺序获取集合中元素的value,类似的还有 zrevrangebylex, zlexcount命令
127.0.0.1:6379> zadd sort-set:2 92.5 zhuliu 90 qianqi
(integer) 2
127.0.0.1:6379> zrange sort-set:2 0 -1
1) "qianqi"
2) "lisi"
3) "zhuliu"
4) "wangwu"
5) "zhangsan"
127.0.0.1:6379> zrange sort-set:2 0 -1 withscores
1) "qianqi"
2) "90"
3) "lisi"
4) "92.5"
5) "zhuliu"
6) "92.5"
7) "wangwu"
8) "97.5"
9) "zhangsan"
10) "99"
当元素的value值重复时,zadd 只修改该元素的value值,不添加元素
127.0.0.1:6379> zadd sort-set:2 95 qianqi
(integer) 0
127.0.0.1:6379> zrange sort-set:2 0 -1 withscores
1) "lisi"
2) "92.5"
3) "zhuliu"
4) "92.5"
5) "qianqi"
6) "95"
7) "wangwu"
8) "97.5"
9) "zhangsan"
10) "99"
127.0.0.1:6379> zrevrange sort-set:2 0 -1 withscores
1) "zhangsan"
2) "99"
3) "wangwu"
4) "97.5"
5) "qianqi"
6) "95"
7) "zhuliu"
8) "92.5"
9) "lisi"
10) "92.5"
-表示负无穷,+表示正无穷
127.0.0.1:6379> zrangebylex sort-set:2 - +
1) "lisi"
2) "zhuliu"
3) "qianqi"
4) "wangwu"
5) "zhangsan"
127.0.0.1:6379> zadd sort-set:2 92.5 qianqi
(integer) 0
127.0.0.1:6379> zrangebylex sort-set:2 - +
1) "lisi"
2) "qianqi"
3) "zhuliu"
4) "wangwu"
5) "zhangsan"
字符前的(表示排除该字符串的值,[表示包含该字符串的值
127.0.0.1:6379> zrangebylex sort-set:2 (l [q
1) "lisi"
127.0.0.1:6379> zrangebylex sort-set:2 (l (q
1) "lisi"
127.0.0.1:6379> zrangebylex sort-set:2 (l [z
1) "lisi"
2) "qianqi"
127.0.0.1:6379> zrangebylex sort-set:2 (l (z
1) "lisi"
2) "qianqi"
127.0.0.1:6379> zrangebylex sort-set:2 (lisi (z
1) "qianqi"
127.0.0.1:6379> zrangebylex sort-set:2 (lisi [zhangsan
1) "qianqi"
127.0.0.1:6379> zrangebylex sort-set:2 (lisi [zhuliu
1) "qianqi"
2) "zhuliu"
3) "wangwu"
4) "zhangsan"
相关文章推荐
- Redis-数据结构(有序字符串集合sorted set)
- Redis-数据结构(字符串集合set)
- 源码分析redis的有序集合,学习skiplist跳跃表数据结构
- redis中sortset跳表数据结构
- Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数
- Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构
- Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数
- Redis数据类型--SortedSet(有序集合)
- Redis笔记7:数据类型之有序集合(sorted set)
- Redis的SortSet(有序集合)
- redis 数据结构 - 有序集合 sort set
- Redis 有序集合(sorted set)
- 集合框架体系结构,list、set操作数据,泛型(一)
- Redis 有序集合(sorted set)
- redis的有序集合(Sorted Sets)数据类型
- Redis数据类型之有序集合类型--Redis系列六
- js中数据结构数组Array、映射Map、集合Set、对象、JSON
- redis数据类型(五)有序集合类型
- redis 集合set 与 有序集合sorted set
- 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表