通過這篇文章你會知道如下:
- 如何對兩個(gè)集合進(jìn)行差集并集交集運(yùn)算
- 集合應(yīng)用場景有哪些
時(shí)間復(fù)雜度
-
添加和刪除元素
sadd key element [element ...] 返回添加成功元素個(gè)數(shù)
srem key element [element ...] 返回刪除成功元素個(gè)數(shù) -
計(jì)算元素個(gè)數(shù)
scard的時(shí)間復(fù)雜度為O(1) , 它不會遍歷集合所有元素娶吞, 而是直接用
Redis內(nèi)部的變量
scard key
-
判斷元素是否在集合中
如果給定元素element在集合內(nèi)返回1奕塑, 反之返回0
sismember key element
-
隨機(jī)從集合返回指定個(gè)數(shù)元素
[count]是可選參數(shù), 如果不寫默認(rèn)為1
srandmember key [count]
-
從集合隨機(jī)彈出元素
srandmember和spop都是隨機(jī)從集合選出元素柒啤, 兩者不同的是spop命令
執(zhí)行后倦挂, 元素會從集合中刪除, 而srandmember不會
spop key
獲取所有元素
smembers和lrange担巩、 hgetall都屬于比較重的命令方援, 如果元素過多存在阻
塞Redis的可能性, 這時(shí)候可以使用sscan來完成
兩個(gè)集合交集兵睛、并集肯骇、差集
sinter key [key ...] 交集
suinon key [key ...] 并集
sdiff key [key ...] 差集
將集合結(jié)果進(jìn)行保存
sinterstore destination key [key ...]
suionstore destination key [key ...]
sdiffstore destination key [key ...]
應(yīng)用場景
應(yīng)用場景模型