Redis常用命令之操作Set(集合)
場(chǎng)景
Centos中Redis的下載編譯與安裝(超詳細(xì)):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334
Redis的啟動(dòng)和關(guān)閉(前臺(tái)啟動(dòng)和后臺(tái)啟動(dòng)):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103972348
RedisDesktopManager客戶端可視化工具下載安裝與使用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103983147
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號(hào)
霸道的程序猿
獲取編程相關(guān)電子書(shū)、教程推送與免費(fèi)下載。
實(shí)現(xiàn)
set集合是string類(lèi)型的無(wú)序集合,set是通過(guò)hashtable實(shí)現(xiàn)的,對(duì)集合我們可以取交集、并集、差集
SADD命令
語(yǔ)法
SADD key member [member ...]
將一個(gè)或多個(gè) member 元素加入到集合 key 當(dāng)中,已經(jīng)存在于集合的 member 元素將被忽略。
假如 key 不存在,則創(chuàng)建一個(gè)只包含 member 元素作成員的集合。
當(dāng) key 不是集合類(lèi)型時(shí),返回一個(gè)錯(cuò)誤。
?
舉例
?
SMEMBERS命令
語(yǔ)法
SMEMBERS key
返回集合 key 中的所有成員。
不存在的 key 被視為空集合。
舉例同上圖
SREM命令
語(yǔ)法
SREM key member [member ...]
移除集合 key 中的一個(gè)或多個(gè) member 元素,不存在的 member 元素會(huì)被忽略。
當(dāng) key 不是集合類(lèi)型,返回一個(gè)錯(cuò)誤。
舉例
?
SPOP命令
語(yǔ)法
SPOP key
移除并返回集合中的一個(gè)隨機(jī)元素。
如果只想獲取一個(gè)隨機(jī)元素,但不想該元素從集合中被移除的話,可以使用 SRANDMEMBER 命令。
舉例
?
SDIFF命令
語(yǔ)法
SDIFF key [key ...]
差集運(yùn)算,返回在第一個(gè)set 中存在,第二個(gè)set 中不存在的內(nèi)容
舉例
?
SDIFFSTORE命令
語(yǔ)法
SDIFFSTORE destination key [key ...]
這個(gè)命令的作用和 SDIFF 類(lèi)似,但它將結(jié)果保存到 destination 集合,而不是簡(jiǎn)單地返回結(jié)果集。
如果 destination 集合已經(jīng)存在,則將其覆蓋。
destination 可以是 key 本身。
舉例
?
SINTER命令
語(yǔ)法
SINTER key [key ...]
返回一個(gè)集合的全部成員,該集合是所有給定集合的交集。
不存在的 key 被視為空集。
當(dāng)給定集合當(dāng)中有一個(gè)空集時(shí),結(jié)果也為空集(根據(jù)集合運(yùn)算定律)。
?
舉例
?
SUNION命令
語(yǔ)法
SUNION key [key ...]
返回一個(gè)集合的全部成員,該集合是所有給定集合的并集。
不存在的 key 被視為空集
舉例
?
SUNIONSTORE命令
語(yǔ)法
SUNIONSTORE destination key [key ...]
這個(gè)命令類(lèi)似于 SUNION 命令,但它將結(jié)果保存到 destination 集合,而不是簡(jiǎn)單地返回結(jié)果集。
如果 destination 已經(jīng)存在,則將其覆蓋。
destination 可以是 key 本身
舉例
?
SMOVE命令
語(yǔ)法
SMOVE source destination member
將 member 元素從 source 集合移動(dòng)到 destination 集合。
SMOVE 是原子性操作。
如果 source 集合不存在或不包含指定的 member 元素,則 SMOVE 命令不執(zhí)行任何操作,僅返回 0 。否則, member 元素從 source 集合中被移除,并添加到 destination 集合中去。
當(dāng) destination 集合已經(jīng)包含 member 元素時(shí), SMOVE 命令只是簡(jiǎn)單地將 source 集合中的 member 元素刪除。
當(dāng) source 或 destination 不是集合類(lèi)型時(shí),返回一個(gè)錯(cuò)誤。
?
舉例
?
SCARD命令
語(yǔ)法
SCARD key
返回集合 key 的基數(shù)(集合中元素的數(shù)量)。
舉例
?
SISMEMBER命令
語(yǔ)法
SISMEMBER key member
判斷 member 元素是否集合 key 的成員。
舉例
?
SRANDMEMBER命令
語(yǔ)法
SRANDMEMBER key [count]
如果命令執(zhí)行時(shí),只提供了 key 參數(shù),那么返回集合中的一個(gè)隨機(jī)元素。
從 Redis 2.6 版本開(kāi)始, SRANDMEMBER 命令接受可選的 count 參數(shù):
如果 count 為正數(shù),且小于集合基數(shù),那么命令返回一個(gè)包含 count 個(gè)元素的數(shù)組,數(shù)組中的元素各不相同。如果 count 大于等于集合基數(shù),那么返回整個(gè)集合。
如果 count 為負(fù)數(shù),那么命令返回一個(gè)數(shù)組,數(shù)組中的元素可能會(huì)重復(fù)出現(xiàn)多次,而數(shù)組的長(zhǎng)度為 count 的絕對(duì)值。
舉例
?
其他命令參考:
http://doc.redisfans.com/set/index.html
總結(jié)
以上是生活随笔為你收集整理的Redis常用命令之操作Set(集合)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Redis常用命令之操作SortedSe
- 下一篇: Redis之通用的key操作命令