redis 集合 好友關注

2021-09-26 09:21:10 字數 1664 閱讀 7244

集合命令

a檢視b

共同關注   ab交集  sinter 或 sinterestrore

我(a)關注的人也關注b  迴圈遍歷我關注的人 是否有關注b  sismember

可能認識的人   ab差集 (sdiff 或 sdiffstrore )  然後排除掉自己   srem 

redis 的 set 是 string 型別的無序集合。集合成員是唯一的,這就意味著集合中不能出現重複的資料。

redis 中集合是通過雜湊表實現的,所以新增,刪除,查詢的複雜度都是 o(1)。

集合中最大的成員數為 232 - 1 (4294967295, 每個集合可儲存40多億個成員)。

redis 127.0.0.1:6379> sadd runoobkey redis

(integer) 1

redis 127.0.0.1:6379> sadd runoobkey mongodb

(integer) 1

redis 127.0.0.1:6379> sadd runoobkey mysql

(integer) 1

redis 127.0.0.1:6379> sadd runoobkey mysql

(integer) 0

redis 127.0.0.1:6379> smembers runoobkey

1) "mysql"

2) "mongodb"

3) "redis"

下表列出了 redis 集合基本命令:

序號命令及描述

1sadd key member1 [member2]

向集合新增乙個或多個成員

2scard key

獲取集合的成員數

3sdiff key1 [key2]

返回給定所有集合的差集

4sdiffstore destination key1 [key2]

返回給定所有集合的差集並儲存在 destination 中

5sinter key1 [key2]

返回給定所有集合的交集

6sinterstore destination key1 [key2]

返回給定所有集合的交集並儲存在 destination 中

7sismember key member

判斷 member 元素是否是集合 key 的成員

8smembers key

返回集合中的所有成員

9smove source destination member

將 member 元素從 source 集合移動到 destination 集合

10spop key

移除並返回集合中的乙個隨機元素

11srandmember key [count]

返回集合中乙個或多個隨機數

12srem key member1 [member2]

移除集合中乙個或多個成員

13sunion key1 [key2]

返回所有給定集合的並集

14sunionstore destination key1 [key2]

所有給定集合的並集儲存在 destination 集合中

15sscan key cursor [match pattern] [count count]

迭代集合中的元素

取自 

Redis實現關注關係

綜合考慮了一下redis的幾種資料結構後,覺得可以用集合實現一下。假設 我 的id是1,別人 的id是2。新增關注分為兩步 1 將對方id新增到自己的關注列表中 2 將自己的id新增到對方的粉絲列表中 sadd 1 follow 2 sadd 2 fans 1取消關注同樣分為兩步 1 將對方id從自...

Redis操作集合

在redis中,set和list都是字串序列,非常相似,不同之處在於set是用雜湊表來保持字串的唯一性,沒有先後順序,不像list一樣,可以在首尾增刪資料。但是set也有自己的相應處理命令來完成對自己的操作。下面我們來看下set的命令怎麼使用。redis中set列表的新增命令sadd,key值相同下...

redis集合指令

1.rpush 右邊插入 2.lpush 左邊插入 3.lrange 檢視list 起始位置,結束位置 1表示倒數第乙個數,2表示倒數第二個數 4.lpop 彈出 從頭部彈出 5.rpop 彈出 從尾部彈出 6.llen 獲取鍊錶長度 7.lpushx 從頭部 左邊 插入元素 8.rpushx 從尾...