有序集合
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"
redis資料結構之有序集合
有序集合與集合大致差不多,不同的是有序集合中的元素可以排序,但與列表使用下標實現排序不一樣,有序集合利用分數作為依據排序。有序集合不能重複,但分數可以重複。對部落格 發布的文章做排行榜,榜單的維度可能是按時間 按照獲得讚數。比如使用讚數對使用者每天發布文章的排行榜,並實現以下功能 1 新增使用者讚數...
Redis資料結構之有序集合sortedset
有序集合 sorted set 用於儲存多個字串元素,它是在集合 set 的基礎上給每個元素增加了乙個用於排序的字段 score 元素同樣不可重複,可以根據分數索引獲取元素,此外,提供了根據score獲取指定範圍以及排序功能 zadd 新增資料,返回元素個數 zadd key score1 memb...
Redis資料型別之有序集合
k ey key key 有序集合是有序的,去重的容器資料結構 值只能為字串,最多232 12 1 232 1這裡每個元素對應乙個分數,並按照分數從小到大排序 1.新增元素,檢視元素 新增元素時,在前面加乙個分數 zadd z1 1 a 3 b 2 c 檢視所有元素,正向分值從小到大 zrange ...