Redis set資料型別命令使用及應用場景使用總結

香吧香發表於2023-01-01

轉載請註明出處:

目錄

1.sadd 集合新增元素

sadd key value 

  新增元素示例:

127.0.0.1:6379> sadd action:10001 101 102 103 104
(integer) 4
127.0.0.1:6379> smembers action:10001
1) "101"
2) "102"
3) "103"
4) "104"
127.0.0.1:6379>

2.srem移除元素

srem key member

  示例

127.0.0.1:6379> srem action:10001 101
(integer) 1
127.0.0.1:6379> srem action:10001 106
(integer) 0
127.0.0.1:6379> 

  元素存在移除成功返回1,不存在移除返回0

3.smembers 獲取key的所有元素

smembers key

  示例:

127.0.0.1:6379> smembers action:10001
1) "101"
2) "102"
3) "103"
4) "104"

4.scard 獲取key的個數

scard key

  示例:

127.0.0.1:6379> scard action:10001
(integer) 4
127.0.0.1:6379>

  應用場景:多少人點贊,多少人評論,以及多少人關注等

5.sismember 判斷member元素是否存在集合key中

sismember key member

  示例

127.0.0.1:6379> sismember action:10001 102
(integer) 1
127.0.0.1:6379> sismember action:10001 109
(integer) 0
127.0.0.1:6379>

  應用場景:檢查使用者是否點過贊或訪問過

6.srandmember key count 從集合key中隨機選出count個元素,元素不從key中刪除

srandmember key count

  示例

127.0.0.1:6379> srandmember action:10001 1
1) "104"
127.0.0.1:6379> srandmember action:10001 2
1) "104"
2) "103"
127.0.0.1:6379>

  應用場景:隨機抽取,並不從集合中移除隨機抽取出的元素

7.spop 從集合key中隨機選出count個元素,元素從key中刪除

spop key count

  示例

127.0.0.1:6379> spop action:10001 1
1) "103"
127.0.0.1:6379> 

  應用場景: 活動抽獎,從參與活動的set集合中,隨機抽取出一等獎,二等獎等; 遊戲場景中 給使用者分配分割槽

8.sinter 交集運算

sinter key [key...]

  示例:

127.0.0.1:6379> smembers action:10001
1) "101"
2) "102"
3) "104"
127.0.0.1:6379> smembers action:10002
1) "102"
2) "104"
3) "106"
4) "108"
127.0.0.1:6379> sinter action:10001 action:10002
1) "102"
2) "104"
127.0.0.1:6379> 

  應用場景:共同的好友,愛好等

9.sinterstore 將交集的結果存入到新集合destination中  

sinterstore destination key [key....]

  示例 

127.0.0.1:6379> sinterstore  common:action:10001 action:10001 action:10002
(integer) 2
127.0.0.1:6379> smembers common:action:10001
1) "102"
2) "104"
127.0.0.1:6379>

  應用場景:共同的好友,愛好等

10.sunion 並集運算

sunion key [key ....]

  示例

127.0.0.1:6379> sunion action:10001 action:10002
1) "101"
2) "102"
3) "104"
4) "106"
5) "108"
127.0.0.1:6379> 

  應用場景:獲取集合間的所有元素

11.sunionstore 將並集結果存入新集合destionation中

sunionstore destionation key [key.....]

  示例

127.0.0.1:6379> sunionstore all:action:10001 action:10001 action:10002
(integer) 5
127.0.0.1:6379> smembers all:action:10001
1) "101"
2) "102"
3) "104"
4) "106"
5) "108"
127.0.0.1:6379> 

  應用場景:獲取集合間的所有元素到新的集合

12.sdiff 差集運算

sdiff key [key....]

  差集比較的是 前面第一個key中的元素在後面集合元素中比較,後面集合中包含key的元素

  示例

127.0.0.1:6379> smembers action:10001
1) "101"
2) "102"
3) "104"
127.0.0.1:6379> smembers action:10002
1) "102"
2) "104"
3) "106"
4) "108"
127.0.0.1:6379> sdiff action:10001 action:10002
1) "101"
127.0.0.1:6379> 

  應用場景:可能認識的人

13.sdiffstore 將差集結果存入新的集合

sdiffstore destination key [key...]

  示例

127.0.0.1:6379> sdiffstore diff:action:10001 action:10001 action:10002
(integer) 1
127.0.0.1:6379> smembers diff:action:10001
1) "101"
127.0.0.1:6379> 

  應用場景:可能認識的人

 

 

相關文章