Redis 資料結構之set

2021-09-25 20:23:18 字數 2887 閱讀 9931

集合set:set 集合是無序且不可重複的,set 是通過 hashtable 實現的,新增刪除和查詢的複雜度都是o(1),效率很高。它最大的優勢在於可以進行交集、並集、差集操作。set 集合中最大元素數量是 4294967295。

sadd  新增元素(重複元素不再新增)

127.0.0.1:6379> sadd set1 a b c

(integer) 3

127.0.0.1:6379> sadd set1 c d e

(integer) 2

smembers  檢視指定集合元素

127.0.0.1:6379> smembers set1

1) "b"

2) "d"

3) "c"

4) "a"

5) "e"

srem  刪除元素

127.0.0.1:6379> srem set1 d e

(integer) 2

127.0.0.1:6379> smembers set1

1) "a"

2) "c"

3) "b"

sismember  判斷某個元素是否存在,存在返回1,否則返回0

127.0.0.1:6379> sismember set1 a

(integer) 1

127.0.0.1:6379> sismember set1 d

(integer) 0

sdiff  計算差集

127.0.0.1:6379> smembers set1

1) "a"

2) "c"

3) "b"

127.0.0.1:6379> smembers set2

1) "b"

2) "d"

3) "c"

127.0.0.1:6379> sdiff set1 set2

1) "a"

127.0.0.1:6379> sdiff set2 set1

1) "d"

sinter 計算交集

127.0.0.1:6379> smembers set1

1) "a"

2) "c"

3) "b"

127.0.0.1:6379> smembers set2

1) "b"

2) "d"

3) "c"

127.0.0.1:6379> sinter set1 set2

1) "c"

2) "b"

sunion 計算並集

127.0.0.1:6379> sunion set1 set2

1) "b"

2) "d"

3) "c"

4) "a"

scard 計算元素總數

127.0.0.1:6379> smembers set1

1) "a"

2) "c"

3) "b"

127.0.0.1:6379> scard set1

(integer) 3

srandmember  key 個數

127.0.0.1:6379> srandmember set1

"b"127.0.0.1:6379> srandmember set1

"c"

sdiffstore 把差集結果儲存到新集合中

127.0.0.1:6379> smembers set1

1) "a"

2) "c"

3) "b"

127.0.0.1:6379> smembers set2

1) "b"

2) "d"

3) "c"

127.0.0.1:6379> sdiffstore sdiff set1 set2

(integer) 1

127.0.0.1:6379> smembers sdiff

1) "a"

sinterstore 把交集結果儲存到新集合中

127.0.0.1:6379> sinterstore sinter set1 set2

(integer) 2

127.0.0.1:6379> smembers sinter

1) "b"

2) "c"

sunionstore 把並集結果儲存到新集合中

127.0.0.1:6379> sunionstore sunion set1 set2

(integer) 4

127.0.0.1:6379> smembers sunion

1) "b"

2) "d"

3) "c"

4) "a"

Redis資料結構詳解之Set(三)

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

Redis資料結構詳解之Set(三)

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

Redis資料結構詳解之Set(三)

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