Redis系列(五)、數據類型之無序集合Set

目錄

介紹

命令行模式

交集

並集

差集

應用場景


Redis支持五種數據類型:String, Hash, List, Set, ZSet,這個系列介紹一下如何使用這些數據類型,本篇介紹使用命令行模式以及python客戶端對redis進行操作,實際項目的過程中也大多是一模一樣的用法。

相關內容:

Redis系列(一)、CentOS7下安裝Redis6.0.3穩定版

Redis系列(二)、數據類型之字符串String 

Redis系列(三)、數據類型之哈希Hash

Redis系列(四)、數據類型之列表List

------------------------Redis無序集合類型----------------------

介紹

Redis 的 Set 是 string 類型的無序集合。

集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是 O(1)。

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

命令行模式

進入命令行模式:

redis-cli -a password_value
 
redis-cli -a password_value --raw
--raw 避免中文顯示亂碼

help

使用下面的命令查看手冊:

help @set

 

sadd

給集合內新增成員,若集合不存在則創建集合並新增成員:

SADD key member [member ...]

srem

從集合中刪除指定的成員,返回刪除的個數:

SREM key member [member ...]

smove

SMOVE source destination member

 

smembers

查看集合中所有的成員: 

SMEMBERS key

 

scard

返回集合中成員的個數 :

SCARD key

srandmember

 從集合中隨機返回指定個數的成員:

SRANDMEMBER key [count]

sismember

判斷對象是否是集合中的成員,返回1/0,True/False: 

SISMEMBER key member

 

spop

從集合中隨機彈出一個成員,返回該成員並從集合中刪除該成員: 

SPOP key

交集

sinter

取多個集合的交集,返回這些集合中共同擁有的成員:

SINTER key [key ...]

sinterstore

將多個集合的交集的結果保存爲一個新的集合destination  ,返回新集合的成員個數: 

SINTERSTORE destination key [key ...]

 

並集

sunion

取多個集合的並集,相同的成員會被去重:

SUNION key [key ...]

 

sunionstore

將多個集合的並集的結果保存爲一個新的集合destination ,返回新集合的成員個數: 

SUNIONSTORE destination key [key ...]

 

差集

sdiff

 取多個集合的差集,以最左邊的爲主集合,返回左集合中有而其他集合沒有的成員:

SDIFF key [key ...]

sdiffstore

將多個集合的差集的結果保存爲一個新的集合destination ,返回新集合的成員個數 : 

SDIFFSTORE destination key [key ...]

 

 

應用場景

  1. 抽獎:隨機返回指定個數成員
  2. 共同好友:取交集
  3. 好友推薦:根據標籤取交集,交集的成員個數大於某個閾值觸發推薦動作

 

Python客戶端與命令行函數基本上完全一致,篇幅太長因此不再過多的展示。

希望本文對你有幫助,請點個贊鼓勵一下作者吧~ 謝謝!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章