sorted set 是 set 的一個升級版本打颤,它在 set 的基礎(chǔ)上增加了一個順序?qū)傩裕?set 一樣 sorted? set 也是 string 類型元素的集合宙暇,不同的是每個元素都會關(guān)聯(lián)一個 double類型的 score暴匠。sorted set 最經(jīng)常的使用方式應(yīng)該是作為索引來使用.我們可以把要排序的字段作為 score 存儲精耐,對象的 id當(dāng)元素存儲希太。
1 zadd
向名稱為 key 的 zset 中添加元素 member克饶,score 用于排序。如果該元素已經(jīng)存在誊辉,則根據(jù)
score 更新該元素的順序
127.0.0.1:6379> zadd zset 1 hello
(integer) 1
127.0.0.1:6379> zadd zset 2 world
(integer) 1
跟新2次
127.0.0.1:6379> zadd zset 3 world
(integer) 0
元素和score一起顯示
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "world"
4) "3"
2 zrem
刪除名稱為 key 的 zset 中的元素 member
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "world"
4) "3"
127.0.0.1:6379> zrem zset world
(integer) 1
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3 zincrby
如果在名稱為 key 的 zset 中已經(jīng)存在元素 member彤路,則該元素的 score 增加 increment;否則向集合中添加該元素芥映,其 score 的值為 increment
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "world"
4) "3"
127.0.0.1:6379> zincrby zset 2 wxc
"2"
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
5) "world"
6) "3"
4 zrank
返回名稱為 key 的 zset 中 member 元素的排名(按 score 從小到大排序)即下標(biāo)下標(biāo)
下標(biāo)下標(biāo)!
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
5) "world"
6) "3"
127.0.0.1:6379> zrank zset wxc
(integer) 1
5 zrevrank
返回名稱為 key 的 zset 中 member 元素的排名(按 score 從大到小排序)即下標(biāo)远豺。與zrank相反奈偏。
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
5) "world"
6) "3"
127.0.0.1:6379> zrevrank? zset hello
(integer) 2
6 zrevrange
返回名稱為 key 的 zset(按 score 從大到小排序)中的 index 從 start 到 end 的所有元素
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
5) "world"
6) "3"
127.0.0.1:6379> zrevrange zset 0 -1 withscores
1) "world"
2) "3"
3) "wxc"
4) "2"
5) "hello"
6) "1"
7 zrangebyscore
返回集合中 score 在給定區(qū)間的元素(score從1開始)
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
5) "world"
6) "3"
127.0.0.1:6379> zrangebyscore zset 2 4 withscores
1) "wxc"
2) "2"
3) "world"
4) "3"
8 zcount
返回集合中 score 在給定區(qū)間的數(shù)量
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
5) "world"
6) "3"
127.0.0.1:6379> zcount zset? 2 3
(integer) 2
9 zcard
返回集合中元素個數(shù)
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
5) "world"
6) "3"
127.0.0.1:6379> zcard zset
(integer) 3
10 zscore
返回給定元素對應(yīng)的 score
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
5) "world"
6) "3"
127.0.0.1:6379> zscore zset wxc
"2"
11 zremrangebyrank
刪除集合中排名在給定下標(biāo)區(qū)間的元素
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
5) "world"
6) "3"
127.0.0.1:6379> zremrangebyrank zset 2 2
(integer) 1
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "hello"
2) "1"
3) "wxc"
4) "2"
12 zremrangebyscore
刪除集合中 score 在給定區(qū)間的元素
13 zunionstore
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
計(jì)算給定的一個或多個有序集的并集,其中給定key的數(shù)量必須以numkeys參數(shù)指定躯护,并將該并集(結(jié)果集)儲存到destination惊来。默認(rèn)情況下,結(jié)果集中某個成員的score值是所有給定集下該成員score值之和棺滞。
? ? ? weight選項(xiàng)
? ? ? ? ? ? ? 使用WEIGHTS選項(xiàng)裁蚁,你可以為每個給定有序集分別指定一個乘法因子(multiplication factor),每個給定有序集的所有成員的score值在傳遞給聚合函數(shù)(aggregation function)之前都要先乘以該有序集的因子继准。默認(rèn)為1枉证。
? ? ? aggregate選項(xiàng)
? ? ? ? ? ? ? 使用aggregate選項(xiàng),你可以指定并集的結(jié)果集的聚合方式移必。默認(rèn)使用的參數(shù)sum室谚,可以將所有集合中某個成員的score值之和作為結(jié)果集中該成員的score值;使用參數(shù)min崔泵,可以將所有集合中某個成員的最小score值作為結(jié)果集中該成員的score值秒赤;而參數(shù)max則是將所有集合中某個成員的最大score值作為結(jié)果集中該成員的score值。
127.0.0.1:6379> zrange programmer 0 -1 withscores
1) "peter"
2) "2000"
3) "jack"
4) "3500"
5) "tom"
6) "5000"
127.0.0.1:6379> zrange manager 0 -1 withscores
1) "herry"
2) "2000"
3) "mary"
4) "3500"
5) "bob"
6) "4000"
127.0.0.1:6379> zunionstore salary1 2 programmer manager weights 2 3
(integer) 6
127.0.0.1:6379> zrange salary1 0 -1 withscores
1) "peter"
2) "4000"
3) "herry"
4) "6000"
5) "jack"
6) "7000"
7) "tom"
8) "10000"
9) "mary"
10) "10500"
11) "bob"
12) "12000"
13 zunionstore
14 zinterstore
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
計(jì)算給定的一個或多個有序集的交集憎瘸,其中給定key的數(shù)量必須以numkeys參數(shù)指定入篮,并將該交集(結(jié)果集)儲存到destination。默認(rèn)情況下幌甘,結(jié)果集中某個成員的score值是所有給定集下該成員score值之和.其余同zunionstore