redis學(xué)習(xí)筆記3--sortSet

終于到最后一個(gè)數(shù)據(jù)結(jié)構(gòu)了,加油!!

整體結(jié)構(gòu)圖:

http://dl.iteye.com/upload/picture/pic/115995/0ee3789f-33e1-35ca-ac65-cbd6b4e4e147.jpg

?

?

1.ZADD

語(yǔ)法: ZADD key score value?

釋義:添加執(zhí)行分?jǐn)?shù)的value, score必須是double類(lèi)型的數(shù)值

實(shí)踐:

redis 127.0.0.1:6379> zadd z1 1 a?

(integer) 1

redis 127.0.0.1:6379> zadd z1 2 b?

(integer) 1

redis 127.0.0.1:6379> zadd z1 20 bb?

(integer) 1

redis 127.0.0.1:6379> zadd z1 10 ff ?

(integer) 1

redis 127.0.0.1:6379> zrange z1 0 -1?

1) "a"

2) "b"

3) "ff"

4) "bb"

?

?

2.ZREM

語(yǔ)法:ZREM key value?

釋義:刪除指定value的值

實(shí)踐:

redis 127.0.0.1:6379> ZREM z1 b ? ? ? ? ? ?// 刪除,指定value

(integer) 1

redis 127.0.0.1:6379> zrange z1 0 -1 ? ? ? ??

1) "a"

2) "ff"

3) "bb"

?

?

3.ZCARD

語(yǔ)法:ZCARD key?

釋義:獲取集合總數(shù)

實(shí)踐:

redis 127.0.0.1:6379> zrange z1 0 -1?

1) "a"

2) "ff"

3) "bb"

redis 127.0.0.1:6379> zcard z1?

(integer) 3

?

4.ZCOUNT

語(yǔ)法:zcount key min max

釋義:計(jì)算在指定范圍內(nèi)的元素?cái)?shù)目

(1 6 ?==== 1 < x <= 6 ? ? ? ?// 括號(hào)代表開(kāi)區(qū)間

1 6 ? ==== 1 <= x <= 6

?

?

實(shí)踐:

redis 127.0.0.1:6379> zrange z1 0 -1 withscores?

1) "a"

2) "1"

3) "ff"

4) "10"

5) "bb"

6) "20"

redis 127.0.0.1:6379> zcount z1 5 10 ? ? ?// 閉區(qū)間,能取得10

(integer) 1

redis 127.0.0.1:6379> zcount z1 5 (10 ? ? //開(kāi)區(qū)間,無(wú)法得到10

(integer) 0

?

5.ZSCORE

語(yǔ)法:ZSCORE key value

釋義:獲取指定key的分?jǐn)?shù)

實(shí)踐:

redis 127.0.0.1:6379> zrange z1 0 -1 withscores?

1) "a"

2) "1"

3) "ff"

4) "10"

5) "bb"

6) "20"

redis 127.0.0.1:6379> zscore z1 a ? ? ? ? ? ? // 獲取a的分?jǐn)?shù)

"1"

?

6.ZINCRBY

語(yǔ)法:ZINCRBY key score value?

釋義:對(duì)于指定的value進(jìn)行加法操作

實(shí)踐:

redis 127.0.0.1:6379> zrange z1 0 -1 withscores?

1) "a"

2) "1"

3) "ff"

4) "10"

5) "bb"

6) "20"

redis 127.0.0.1:6379> zincrby z1 10 a ? ? ? ? ? ?// 對(duì)于a+10

"11"

redis 127.0.0.1:6379> zrange z1 0 -1 withscores?

1) "ff"

2) "10"

3) "a"

4) "11"

5) "bb"

6) "20"

redis 127.0.0.1:6379> zincrby z1 -3 a ? ? ? ? ?// 對(duì)于a-3

"8"

redis 127.0.0.1:6379> zrange z1 0 -1 withscores?

1) "a"

2) "8"

3) "ff"

4) "10"

5) "bb"

6) "20"

?

7.ZRANGE|ZREVRANGE

語(yǔ)法:ZRANGE|ZREVRANGE key?

釋義:顯示所有列表

redis 127.0.0.1:6379> zrange z1 0 -1?

1) "a"

2) "ff"

3) "bb"

redis 127.0.0.1:6379> zrevrange z1 0 -1?

1) "bb"

2) "ff"

3) "a"

?

8.ZRANGEBYSCORE|ZREVRANGEBYSCORE

語(yǔ)法:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

釋義:獲取指定范圍內(nèi)的數(shù)值

實(shí)踐:

redis 127.0.0.1:6379> zrange z1 0 -1 withscores?

1) "a"

2) "8"

3) "ff"

4) "10"

5) "bb"

6) "20"

redis 127.0.0.1:6379> zrangebyscore z1 -inf +inf ? // 在不清楚最大最小范圍的時(shí)間,可以采用這個(gè) -inf +inf?

1) "a"

2) "ff"

3) "bb"

redis 127.0.0.1:6379> zrangebyscore z1 8 10 ? ? ? // 閉區(qū)間

1) "a"

2) "ff"

redis 127.0.0.1:6379> zrangebyscore z1 (8 10 ? ? ?// 開(kāi)區(qū)間

1) "ff"

?

?

9.ZRANK|ZREVRANK

語(yǔ)法:zrank|zremrank ?key member

釋義:獲取指定值在集合中的排名,以0代表第一位 。(順序或是逆序)

redis 127.0.0.1:6379> zrange z1 0 -1 withscores?

1) "a"

2) "8"

3) "ff"

4) "10"

5) "bb"

6) "20"

redis 127.0.0.1:6379> zrank z1 a?

(integer) 0

redis 127.0.0.1:6379> zrank z1 ff     //順序位置

(integer) 1?

redis 127.0.0.1:6379> zrevrank z1 a ? ? ? ?//逆序位置

(integer) 2

?

10.ZREMRANGEBYRANK

語(yǔ)法 :ZREMRANGEBYRANK key min max?

釋義:刪除指定下標(biāo)的數(shù)據(jù)

實(shí)踐:

redis 127.0.0.1:6379> zrange z1 0 -1?

1) "a"

2) "ff"

3) "bb"

redis 127.0.0.1:6379> zremrangebyrank z1 0 1?

(integer) 2

redis 127.0.0.1:6379> zrange z1 0 -1?

1) "bb"

?

11.ZREMRANGEBYSCORE

語(yǔ)法 :ZREMRANGEBYSCORE key min max

釋義:根據(jù)指定分?jǐn)?shù)刪除數(shù)據(jù)

實(shí)踐:

redis 127.0.0.1:6379> zrange z1 0 -1 withscores?

1) "bb"

2) "20"

redis 127.0.0.1:6379> ZREMRANGEBYSCORE z1 -inf +inf ? ?// 刪除所有的數(shù)據(jù) 等同于 ?del z1

(integer) 1

redis 127.0.0.1:6379> zrange z1 0 -1?

(empty list or set)

?

12.ZINTERSTORE

語(yǔ)法:ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

釋義:

? 計(jì)算給定的一個(gè)或多個(gè)有序集的交集,其中給定 key 的數(shù)量必須以 numkeys 參數(shù)指定,并將該交集(結(jié)果集)儲(chǔ)存到 destination 。

? 默認(rèn)情況下,結(jié)果集中某個(gè)成員的 score 值是所有給定集下該成員 score 值之和.

?

實(shí)踐:

redis 127.0.0.1:6379> zrange s1 0 -1?

1) "a"

2) "b"

3) "c"

redis 127.0.0.1:6379> zrange s2 0 -1?

1) "a"

2) "c"

3) "d"

redis 127.0.0.1:6379> zinterstore s3 2 s1 s2?

(integer) 2

redis 127.0.0.1:6379> zrange s3 0 -1?

1) "a"

2) "c"

redis 127.0.0.1:6379>?

?

13.ZUNIONSTORE

語(yǔ)法:ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

釋義:計(jì)算給定的一個(gè)或多個(gè)有序集的并集,其中給定 key 的數(shù)量必須以 numkeys 參數(shù)指定,并將該并集(結(jié)果集)儲(chǔ)存到 destination 。

默認(rèn)情況下,結(jié)果集中某個(gè)成員的 score 值是所有給定集下該成員 score 值之 和 。

?

WEIGHTS

?使用 WEIGHTS 選項(xiàng),你可以為 每個(gè) 給定有序集 分別 指定一個(gè)乘法因子(multiplication factor),每個(gè)給定有序集的所有成員的 score 值在傳遞給聚合函數(shù)(aggregation function)之前都要先乘以該有序集的因子。

?如果沒(méi)有指定 WEIGHTS 選項(xiàng),乘法因子默認(rèn)設(shè)置為 1 。

?

AGGREGATE

?使用 AGGREGATE 選項(xiàng),你可以指定并集的結(jié)果集的聚合方式。

?默認(rèn)使用的參數(shù) SUM ,可以將所有集合中某個(gè)成員的 score 值之 和 作為結(jié)果集中該成員的 score 值;使用參數(shù) MIN ,可以將所有集合中某個(gè)成員的 最小 score 值作為結(jié)果集中該成員的 score 值;而參數(shù) MAX 則是將所有集合中某個(gè)成員的 最大 score 值作為結(jié)果集中該成員的 score 值。

?

實(shí)踐:

redis 127.0.0.1:6379> zunionstore s3 2 s1 s2?

(integer) 4

redis 127.0.0.1:6379> zrange s3 0 -1?

1) "b"

2) "a"

3) "c"

4) "d"

redis 127.0.0.1:6379>?




已有 0 人發(fā)表留言,猛擊->>這里<<-參與討論


ITeye推薦