Redis Set和ZSet常用命令

Redis Set和ZSet常用命令

Set

1. SADD :添加多個元素到集合中
<code>127.0.0.1:6379> sadd goodfood "potato" "tomato" "apple"
(integer) 3/<code>
2. SMOVE 命令:移動集合元素到另一個集合中
<code>smove source destination member/<code>
3. SUNIONSTORE 命令:保存多個集合元素到新集合中
<code>127.0.0.1:6379> sunionstore foods goodfood
(integer) 3/<code>
4. SISMEMBER 命令:判斷某個元素是否在集合中
5. SCARD 命令:獲取集合中元素的數量
6. SMEMBERS 命令:獲取集合中的所有元素
7. SRANDMEMBER 命令:隨機獲取集合中的一個元素
8. SUNION 命令:獲取多個集合中的所有元素
<code>127.0.0.1:6379> sunionstore foods goodfood
(integer) 3
127.0.0.1:6379> sismember foods "apple"
(integer) 1
127.0.0.1:6379> scard foods
(integer) 3
127.0.0.1:6379> smembers foods
1) "apple"
2) "tomato"
3) "potato"
127.0.0.1:6379> srandmember foods
"apple"
127.0.0.1:6379> srandmember foods 2
1) "apple"
2) "potato"
127.0.0.1:6379> sunion foods goodfood
1) "apple"
2) "tomato"
3) "potato"/<code>
9. SDIFF 命令:獲取多個集合元素的差集
<code>127.0.0.1:6379> sdiff foods goodfood
(empty list or set)/<code>
10. SDIFFSTORE 命令:獲取多個集合差集的元素個數(返回新集合difffood)
<code>127.0.0.1:6379> sdiffstore difffood foods goodfood
(integer) 0/<code>
11. SINTER 命令:獲取多個集合元素的交集
<code>127.0.0.1:6379> sinter foods goodfood
1) "apple"
2) "tomato"
3) "potato"/<code>
12.
SINTERSTORE 命令:獲取多個集合交集的元素個數(返回新集合newfood)
<code>127.0.0.1:6379> sinterstore newfood foods goodfood
(integer) 3/<code>
13. SPOP 命令:隨機刪除集合中的元素
14. SREM 命令:刪除集合中的多個元素
<code>127.0.0.1:6379> spop foods
"potato"
127.0.0.1:6379> srem foods "apple"
(integer) 1/<code>

ZSet

1. ZADD : 添加多個元素到有序集合中
<code>127.0.0.1:6379> zadd city:gdp 95 "beijing" 99.5 "shanghai" 98 "guangzhou"
(integer) 3/<code>
2. ZINCRBY 命令:為分數值加上增量
<code>127.0.0.1:6379> zincrby city:gdp 3 "beijing"
"98"/<code>
3. ZCARD 命令:獲取有序集合中的元素數量
4. ZCOUNT 命令:獲取在分數區間內的元素數量
<code>127.0.0.1:6379> zcard city:gdp
(integer) 3
127.0.0.1:6379> zcount city:gdp 99 100
(integer) 1/<code>
5. ZLEXCOUNT 命令:獲取在指定區間內的元素數量

ZLEXCOUNT 命令用於獲取有序集合 key 中介於 min 和 max 範圍內的元素數量,這個有序集合 key 中的所有元素的 score 值都相等。

參數 min 和 max 是一個區間,區間一般使用「(」或「[」表示,其中,「(」表示開區間,「(」指定的值不會被包含在範圍之內;「[」表示閉區間,「[」指定的值會被包含在範圍之內。另外,特殊值 + 和-在參數 min 和 max 中具有特殊含義,其中,+ 表示正無窮,-表示負無窮。我們向一個元素分數相同的有序集合發送命令 ZLEXCOUNT<zset>-+,將會返回這個有序集合中的所有元素。

6. ZRANGE 命令:獲取在指定區間內的元素(升序)
<code>127.0.0.1:6379> zrange city:gdp 0 -1
1) "beijing"
2) "guangzhou"
3) "shanghai"/<code>
7. ZREVRANGE 命令:獲取在指定區間內的元素(降序)
8. ZSCORE 命令:獲取元素的分數值
<code>127.0.0.1:6379> zscore city:gdp "beijing"
"98"/<code>
9. ZRANGEBYLEX 命令:獲取集合在指定範圍內的元素

ZRANGEBYLEX 命令用於返回有序集合 key 中,元素 score 值介於 min 和 max 之間的元素,這個有序集合 key 中的所有元素具有相同的 score 值,它們按照字典序排序。如果有序集合 key 中的元素對應的 score 值不同,則在執行該命令後,返回的結果是未指定的(unspecified)。

可選的 LIMIT offset count 參數用於獲取指定範圍內的匹配元素。此時,需要注意,如果 offset 參數的值非常大,那麼該命令在返回結果之前,需要先遍歷到 offset 所指定的位置。

參數 min 和 max 是一個區間,區間一般使用「(」或「[」表示,其中,「(」表示開區間,「(」指定的值不會被包含在範圍之內;「[」表示閉區間,「[」指定的值會被包含在範圍之內。另外,特殊值 + 和-在參數 min 和 max 中具有特殊含義,其中,+ 表示正無窮,-表示負無窮。我們向一個元素分數相同的有序集合發送命令 ZRANGEBYLEX<zset>-+,將會返回這個有序集合中的所有元素。

10.
ZRANGEBYSCORE 命令:獲取在指定分數區間內的元素
<code>127.0.0.1:6379> ZRANGEBYSCORE  city:gdp 0 100
1) "beijing"
2) "guangzhou"
3) "shanghai"/<code>
11. ZREVRANGEBYSCORE 命令:獲取在指定區間內的所有元素

RANGEBYSCORE 命令用於返回有序集合 key 中,所有 score 值介於 min 和 max 之間(包含等於 min 和 max)的元素。有序集合 key 中的元素按照 score 值從小到大的順序排序。當你不知道 min 和 max 參數的具體值時,可以使用-inf 來表示 min 值,使用 +inf 來表示 max 值。在默認情況下,min 與 max 區間是閉區間(小於等於或大於等於),也可以在參數前面添加「(」符號來使用可選的開區間(小於或大於)。

當具有相同 score 值的元素時,有序集合元素會按照字典序排序。

使用 WITHSCORES 選項來返回元素的 score 值。

可選的 LIMIT offset count 參數用於獲取指定範圍內的匹配元素。如果 offset 參數的值非常大,那麼該命令在返回結果之前,需要先遍歷到 offset 所指定的位置。

12. ZRANK 命令:獲取有序集合元素的排名
13. ZREVRANK 命令:獲取有序集合元素的倒序排名
<code>127.0.0.1:6379> zrank city:gdp "shanghai"
(integer) 2/<code>
14. ZINTERSTORE 命令:保存多個有序集合的交集
15. ZUNIONSTORE 命令:保存多個有序集合的並集
16.ZREM 命令:刪除有序集合中的多個元素
<code>127.0.0.1:6379> zrem city:gdp "shanghai"
(integer) 1/<code>
17.ZREMRANGEBYLEX 命令:刪除有序集合在指定區間內的元素
18. ZREMRANGEBYRANK 命令:刪除有序集合在指定排名區間內的元素
19. ZREMRANGEBYSCORE 命令:刪除有序集合在指定分數區間內的元素


分享到:


相關文章: