Redis入門之基本數據類型Set

Set

  • 無序的
  • Set 中的值只有一個(唯一性)
  • 存儲最多 2的32次方 -1 個字符串
    集合類型的常用操作是向集合中加入或刪除元素,判斷某個元素是否存在,由於集合在Redis內部是使用值爲空的散列表(hash table),所以這些操作時間複雜度都是 O(1) ,多個集合還可以進行並集、交集和差集運算

SADD 增加元素和 SREM 刪除元素

  • SADD key value1 [value2 value3 …] // 添加一個或者多個
    SADD 向集合中增加一個或者讀個元素,如果key 不存在自動創建,如果要加入的元素已經存在在集合中則會忽略該元素
127.0.0.1:6379[4]> SADD aa a1 a2 a3 a1
(integer) 3
127.0.0.1:6379[4]> SMEMBERS aa
1) "a2"
2) "a3"
3) "a1"

  • SREM key value1 [value2 value3 …] // 刪除一個或者多個

返回刪除的個數

127.0.0.1:6379[4]> SMEMBERS aa
1) "a2"
2) "a3"
3) "a1"
127.0.0.1:6379[4]> SREM aa a1
(integer) 1
127.0.0.1:6379[4]> SMEMBERS aa 
1) "a2"
2) "a3"

SMEMBERS 返回集合中所有的元素

SISMEMBER 判斷集合中是否有該元素

SISMEMBER key value
返回值爲 1 代表有,0 代表無

127.0.0.1:6379[4]> SMEMBERS aa 
1) "a2"
2) "a3"
127.0.0.1:6379[4]> SISMEMBER aa a2
(integer) 1
127.0.0.1:6379[4]> SISMEMBER aa a1
(integer) 0
127.0.0.1:6379[4]> 

集合運算

SDIFF key [k1 … ] 多個集合的差集運算
SINTER key [k1 … ] 多個集合的 交集運算
SUNION key [k1 … ] 多個集合的並集運算

SCARD 獲得集合中元素的個數

SCARD key

進行集合運算並將結果存儲

SDIFFSTORE destintion key [key …] 差集運算
SINTERSTORE destintion key [key …] 並集運算
SUNIONSTORE destintion key [key …] 交集運算

SRANDMEMBER 隨機獲取集合中的幾個值

SRANDMEMBER key [count]

  • count 參數隨機獲取count個元素
  • count 爲正數的時候, 會隨機從集合中獲取count個不重複的元素, 如果count 大於集合的元素個數,則返回集中的全部數據
  • count 爲負數的時候,會從集合中獲取 |count| 個元素,且這些元素有可能相同
127.0.0.1:6379[4]> SMEMBERS aa
1) "a2"
2) "a3"
127.0.0.1:6379[4]> SRANDMEMBER aa
"a3"
127.0.0.1:6379[4]> SRANDMEMBER aa
"a2"
127.0.0.1:6379[4]> SRANDMEMBER aa 1
1) "a2"
127.0.0.1:6379[4]> SRANDMEMBER aa 1
1) "a3"
127.0.0.1:6379[4]> 
127.0.0.1:6379[4]> SRANDMEMBER aa 2
1) "a2"
2) "a3"
127.0.0.1:6379[4]> SRANDMEMBER aa -2
1) "a2"
2) "a2"

SPOP 從集合中隨機彈出一個元素或多個元素

SPOP key [count]

127.0.0.1:6379[4]> SPOP aa 2
1) "a2"
2) "a3"
127.0.0.1:6379[4]> SMEMBERS aa
(empty list or set)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章