Redis--集合

集合(set)類(lèi)型也是用來(lái)保存多個(gè)字符串元素的剖膳,但是和列表不一樣的是,集合中不允許有重復(fù)元素,并且集合中元素是無(wú)序的,不能通過(guò)索引下標(biāo)獲取元素蓖乘。

一個(gè)集合最多可以存儲(chǔ)2^32 - 1個(gè)元素,Redis除了支持集合的增刪改查二拐,同時(shí)還支持多個(gè)集合取交集茂翔,并集,差集涧尿。


命令:

-- 添加元素

? ? sadd key element [element...] 返回添加成功的元素個(gè)數(shù)

-- 刪除元素

? ? srem key element [element...] 返回成功刪除元素個(gè)數(shù)

-- 計(jì)算元素個(gè)數(shù)

? ? scard key?

????????scard 的時(shí)間復(fù)雜度為O(1)系奉,他不會(huì)遍歷集合所有元素,而是直接用Redis內(nèi)部的變量

-- 判斷元素是否在集合中

? ? sismember key element

-- 隨機(jī)從集合返回指定個(gè)數(shù)元素

? ? srandmember key [count]

? ? [count]可選項(xiàng)姑廉,如果不寫(xiě)默認(rèn)為1

-- 隨機(jī)從集合中彈出元素

? ? spop key

? ? Redis 3.2之后缺亮,spop 也支持[count] 參數(shù)。

? ? srandmember和spop都是隨機(jī)從集合選出元素桥言,兩者不同的是spop命令執(zhí)行后萌踱,元素會(huì)從集合中刪除,而srandmember不會(huì)号阿。

-- 獲取所有元素

? ? smembers key

? ? 注意:smembers 和 lrange并鸵、hgetall都屬于比較重的命令,元素過(guò)多扔涧,可能會(huì)阻塞Redis园担,可以用sscan來(lái)完成


集合間操作:

-- 求多個(gè)集合的交集

sinter key [key...]

-- 求多個(gè)集合的并集

sunion key [key...]

-- 求多個(gè)集合的差集

sdiff key [key...]

-- 將交集、并集枯夜、差集的結(jié)果保存

sinterstore destination key [key...]

sunionstore destination key [key...]

sdiffstore destination key [key...]


內(nèi)部編碼:

-- intset(整數(shù)集合):當(dāng)集合匯總元素都是整數(shù)且元素個(gè)數(shù)小于set-max-intset-entries配置(默認(rèn)512)時(shí)弯汰,Redis會(huì)選用intset來(lái)作為集合的內(nèi)部實(shí)現(xiàn),而減少內(nèi)存使用

-- hashtable(哈希表):當(dāng)集合類(lèi)型無(wú)法滿足intset要求的時(shí)候湖雹,Redis會(huì)使用hashtable作為集合的內(nèi)部實(shí)現(xiàn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝙泼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子劝枣,更是在濱河造成了極大的恐慌汤踏,老刑警劉巖织鲸,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異溪胶,居然都是意外死亡搂擦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)哗脖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瀑踢,“玉大人,你說(shuō)我怎么就攤上這事才避〕髫玻” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵桑逝,是天一觀的道長(zhǎng)棘劣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)楞遏,這世上最難降的妖魔是什么茬暇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮寡喝,結(jié)果婚禮上糙俗,老公的妹妹穿的比我還像新娘。我一直安慰自己预鬓,他們只是感情好巧骚,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著格二,像睡著了一般劈彪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蟋定,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天粉臊,我揣著相機(jī)與錄音,去河邊找鬼驶兜。 笑死扼仲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抄淑。 我是一名探鬼主播屠凶,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼肆资!你這毒婦竟也來(lái)了矗愧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤郑原,失蹤者是張志新(化名)和其女友劉穎唉韭,沒(méi)想到半個(gè)月后夜涕,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡属愤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年女器,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片住诸。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驾胆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贱呐,到底是詐尸還是另有隱情丧诺,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布奄薇,位于F島的核電站驳阎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏惕艳。R本人自食惡果不足惜搞隐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一驹愚、第九天 我趴在偏房一處隱蔽的房頂上張望远搪。 院中可真熱鬧,春花似錦逢捺、人聲如沸谁鳍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)倘潜。三九已至,卻和暖如春志于,著一層夾襖步出監(jiān)牢的瞬間涮因,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工伺绽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留养泡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓奈应,卻偏偏與公主長(zhǎng)得像澜掩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子杖挣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 集合(set)類(lèi)型也是用于保存多個(gè)的字符串元素肩榕,但也列表不一樣的是,集合中不允許有重復(fù)元素惩妇,并且集合中的元素是無(wú)序...
    閑睡貓閱讀 1,254評(píng)論 0 1
  • Redis 集合(Set) 命令 下表列出了 Redis 集合基本命令: 1> sadd 命令:向集合添加一個(gè)或多...
    stakeing閱讀 778評(píng)論 0 0
  • redis是一個(gè)以key-value存儲(chǔ)的非關(guān)系型數(shù)據(jù)庫(kù)株汉。有五種數(shù)據(jù)類(lèi)型筐乳,string、hashes乔妈、list哥童、s...
    林ze宏閱讀 988評(píng)論 0 0
  • set:可以將其看成一個(gè)值不能重復(fù)的鏈表,與list的最大差別就是set不可重復(fù) 操作: 【1 : sadd/sm...
    先生_呂閱讀 9,861評(píng)論 0 0
  • Redis key 值是二進(jìn)制安全的褒翰,這意味著可以用任何二進(jìn)制序列作為key值贮懈,從形如”foo”的簡(jiǎn)單字符串到一個(gè)...
    壹點(diǎn)零閱讀 1,412評(píng)論 0 2