目錄
一、引言
二、介紹
三、命令
1.sadd,smembers,sismember
2.spop,srandmember
3.smove,srem
4.sinter,sinterstore
5.sunion,sunionstore,sdiff,sdiffstore
四、內部編碼
1.intset
2.hashtable
五、應用場景
1.使用Set保存用戶的標簽
2.Set方便計算交集
3.使用Set統計UV
六、總結
一、引言
? 本篇文章將簡單介紹redis中value的類型set類型以及其相關命令和使用場景。
二、介紹
? 其他的set:設置(和get相對應)。
? redis中的set就是集合,集合中的元素是無序的。和list類似,集合中的每個元素也都是String類型,但是使用json這樣的格式可以存儲結構化的數據。
三、命令
1.sadd,smembers,sismember
sadd:添加元素? ? ? ? ? ?時間復雜度:O(1)
smembers:查看當前集合中的所有元素
sismember:判定當前的元素是否在集合中
2.spop,srandmember
spop:從末尾刪除一個元素
srandmember:隨機獲取一個元素,但是不進行刪除
3.smove,srem
smove:移動一個集合中的元素到另外一個集合中
srem:刪除member
4.sinter,sinterstore
sinter:交集,最終結果同時出現在兩個集合中? 時間復雜度:O(N*M)
sinterstore:把交集存入到另外一個集合中
5.sunion,sunionstore,sdiff,sdiffstore
sunion:并集,把多個集合中的數據都集合在一起,如果元素有重復,只保留一份
sunionstore:將并集的結果存入到另外一個集合中
sdiff:差集:找出某些元素在A中存在,在B中不存在
sdiffstore:放入到新的集合中
四、內部編碼
1.intset
? 整數集合:當元素都是整數的時候,且元素個數不是特別多的時候,內部編碼就是整數集合,為了節省空間。
2.hashtable
哈希表:存在字符串或者元素個數比較多的時候就轉換為哈希表。
五、應用場景
1.使用Set保存用戶的標簽
2.Set方便計算交集
容易找到兩個用戶之間的公共標簽,增強了用戶關系。
3.使用Set統計UV
? 1.PV page view? 用戶每次訪問該瀏覽器,就會產生一次PV。
? 2.UV user view? 每個用戶訪問服務器就會產生一次UV,同一個用戶多次訪問不會使UV增加。
六、總結
??本篇文章簡單介紹了redis中value的類型set類型以及其相關命令和使用場景。下一篇我們將講解zset類型的相關命令以及內部編碼等,感謝觀看!