婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Redis集合類型的常用命令小結(jié)

Redis集合類型的常用命令小結(jié)

熱門標(biāo)簽:太原營銷外呼系統(tǒng) 小紅書怎么地圖標(biāo)注店 竹間科技AI電銷機(jī)器人 地圖標(biāo)注費(fèi)用 玄武湖地圖標(biāo)注 西藏教育智能外呼系統(tǒng)價格 百度商家地圖標(biāo)注怎么做 最簡單的百度地圖標(biāo)注 地圖標(biāo)注如何即時生效

集合類型介紹

集合類型也是體現(xiàn)redis一個比較高價值的一個類型了。因?yàn)镽edis的集合類型,所以我們可以很容易的在Redis中執(zhí)行差集運(yùn)算、交集運(yùn)算、并集運(yùn)算。

首先我們先介紹一下集合類型和列表類型的區(qū)別,其實(shí)學(xué)過面向?qū)ο蟮恼Z言的同學(xué)應(yīng)該都能猜到這些類型有什么不同。

     ①集合類型和列表類型還是都能存儲2^32-1個字符串

     ②集合類型是無序的,列表類型是有序的

     ③集合類型是唯一的,列表類型的值是不唯一的

下面我們一起來看一下語法。

1、增加刪除元素命令

sadd key member [member ...]
srem key member [member ...]

sadd命令是用來向集合中增加元素的,當(dāng)然根據(jù)前面的學(xué)習(xí)經(jīng)驗(yàn),如果集合不存在,肯定是會自動創(chuàng)建的。但是這里有點(diǎn)需要注意的是,如果元素已存在,那么他會忽略而不會覆蓋。返回值是成功加入元素的數(shù)量(忽略的元素不算)。

srem命令也是一樣,刪除元素,如果元素存在才會刪除成功,返回值是成功刪除的元素的個數(shù)。

2、獲得集合中的所有元素

smembers key

3、判斷元素是否在集合中

sismember key member

這個判斷操作的時間復(fù)雜度是O(1),無論集合中的元素有多少,這個命令始終都很很快的返回結(jié)果。存在返回1,不存在或沒有這個鍵的時候都返回0 。

4、集合間運(yùn)算

sdiff key [key ...]
sinter key [key ...]
sunion key [key ...]

這三個命令才能使Redis大顯身手!

我們先準(zhǔn)備點(diǎn)測試數(shù)據(jù)。

127.0.0.1:6379> sadd setA 1 2 3
(integer) 3
127.0.0.1:6379> sadd setB 2 3 4
(integer) 3
127.0.0.1:6379> sadd setC 3 4 5
(integer) 3
127.0.0.1:6379> smembers setA 
1) "1"
2) "2"
3) "3"
127.0.0.1:6379>

(1)下面我們來介紹sdiff命令,這個命令實(shí)際上是差集運(yùn)算。

集合A與集合B的差值運(yùn)算表示為A-B,代表所有屬于A且不屬于B的元素構(gòu)成的集合。這個命令同時支持傳入多個鍵,意思是A與B先做差集運(yùn)算,然后結(jié)果再與C做差集運(yùn)算。

127.0.0.1:6379> sdiff setA setB
1) "1"
127.0.0.1:6379> sdiff setB setC
1) "2"
127.0.0.1:6379> sdiff setA setB setC
1) "1"

(2)接下來我們介紹sinter命令,這個命令用來對多個集合執(zhí)行交集運(yùn)算。集合A與集合B的交集表示為A∩B,即所有屬于A且屬于B的元素構(gòu)成的集合。這個命令也同時支持傳入多個鍵,也是一樣,一步一步的做交集運(yùn)算。

127.0.0.1:6379> sinter setA setB
1) "2"
2) "3"
127.0.0.1:6379> sinter setA setB setC
1) "3"

(3)最后我們介紹并集運(yùn)算命令sunion。集合A與集合B的并集意思是既屬于A也屬于B的集合。同樣支持多個鍵傳入。

127.0.0.1:6379> sunion setA setB
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> sunion setA setB setC
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"

5、獲得集合中元素的個數(shù)

scard key
127.0.0.1:6379> scard setA
(integer) 3
127.0.0.1:6379> scard setB
(integer) 3

這條命令用來獲取集合中元素的個數(shù)。同樣集合不存在返回0 。

6、進(jìn)行集合運(yùn)算并將結(jié)果存儲

sdiffstore destination key [key ...]
sinterstore destination key [key ...]
sunionstore destination key [key ...]

這里在所有的集合命令之后加了個store,很清楚就是存儲的意思了。destination就是目的地,也就是我們要存儲的鍵名。

例:

127.0.0.1:6379> sunionstore setAll setA setB setC
(integer) 5
127.0.0.1:6379> smembers setAll
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"

7、隨機(jī)獲得集合中的元素

srandmember key [count]

 

這個命令用來隨機(jī)從集合中獲取一個元素,count參數(shù)用來一詞獲取多個元素,根據(jù)count的正負(fù)有不同的意義。

     (1)當(dāng)count為正數(shù)時,獲取count個不重復(fù)的元素,如果count大于所有值的個數(shù),則返回全部元素。

     (2)負(fù)值時,獲得|count|個元素,但有可能相同。

其實(shí)這個隨機(jī)并不是非常隨機(jī),因?yàn)閷?shí)際上redis的集合用的是散列的存儲結(jié)構(gòu),有興趣的讀者可以自己深入研究一下。

127.0.0.1:6379> srandmember setA 1
1) "1"
127.0.0.1:6379> srandmember setA 2
1) "3"
2) "2"
127.0.0.1:6379> SRANDMEMBER setA 5
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SRANDMEMBER setA -2
1) "3"
2) "3"

8、從集合中彈出一個元素

spop key

之前我們也看過lpop與rpop,那是從列表中彈出,但是集合是無序的,所以spop是隨機(jī)彈出。 (彈出的元素被刪除,不在原來的集合中)

127.0.0.1:6379> spop setA 1
1) "2"
127.0.0.1:6379> smembers setA
1) "1"
2) "3"

下面我們來舉例一個集合的具體應(yīng)用。

在我們文章存儲的時候有個標(biāo)簽tag,這個我們在關(guān)系數(shù)據(jù)庫的時候都需要使用中間表關(guān)聯(lián)。但是在Redis中,我們可以很方便的處理。

對每篇文章,我們使用一個post:文章ID:tags的鍵,類型為集合,存儲一篇文章所屬的tags,這樣本身關(guān)系型數(shù)據(jù)庫我們需要關(guān)聯(lián)文章表、標(biāo)簽表、中間關(guān)系表三個表的復(fù)雜操作,在Redis中就很好處理了。

有時候我們還需要獲取指定標(biāo)簽的所有文章,我們還需要增加一類的鍵,即tag:標(biāo)簽名稱:posts的集合類型鍵,存儲每個標(biāo)簽的文章ID集合,這樣我們每次想要獲取所有屬于某個標(biāo)簽的文章列表的時候也不用像關(guān)系數(shù)據(jù)庫那樣關(guān)聯(lián)那么多表,而是直接通過鍵就可以直接獲得了。

而在我們想要獲取比如同時屬于java和redis標(biāo)簽的文章時,我們只需要對tag:java:poststag:redis:posts做交集運(yùn)算就OK了,是不是很方便呢?

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望能對大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

您可能感興趣的文章:
  • Redis的5種數(shù)據(jù)類型與常用命令講解
  • Redis安裝及基本數(shù)據(jù)類型
  • Redis中3種特殊的數(shù)據(jù)類型(BitMap、Geo和HyperLogLog)
  • Jedis對redis的五大類型操作代碼詳解
  • redis字符串類型_動力節(jié)點(diǎn)Java學(xué)院整理
  • redis數(shù)據(jù)類型_動力節(jié)點(diǎn)Java學(xué)院整理
  • Redis有序集合類型的操作_動力節(jié)點(diǎn)Java學(xué)院整理
  • redis列表類型_動力節(jié)點(diǎn)Java學(xué)院整理
  • redis集合類型_動力節(jié)點(diǎn)Java學(xué)院整理
  • redis哈希類型_動力節(jié)點(diǎn)Java學(xué)院整理
  • Redis 數(shù)據(jù)類型的詳解
  • Redis中五種數(shù)據(jù)類型簡單操作
  • Redis列表類型的常用命令小結(jié)
  • Redis中散列類型的常用命令小結(jié)
  • Redis字符串類型的常用命令小結(jié)
  • Redis有序集合類型的常用命令小結(jié)
  • Redis02 使用Redis數(shù)據(jù)庫(String類型)全面解析
  • redis基本類型和使用方法詳解

標(biāo)簽:林芝 景德鎮(zhèn) 廣東 澳門 揚(yáng)州 香港 唐山 贛州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Redis集合類型的常用命令小結(jié)》,本文關(guān)鍵詞  Redis,集合,類型,的,常用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Redis集合類型的常用命令小結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Redis集合類型的常用命令小結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文成人综合网| 国内外精品视频| 精品免费日韩av| 亚洲亚洲人成综合网络| 国产在线日韩欧美| 久久综合色播五月| 色偷偷88欧美精品久久久| 久久久美女毛片| 亚洲欧洲日产国产综合网| 欧美在线视频你懂得| 日韩一区二区三区四区| 麻豆91在线观看| 在线免费一区三区| 国产一二精品视频| 日韩av一区二区在线影视| 精品国产乱码久久久久久夜甘婷婷| 色8久久精品久久久久久蜜| 91在线视频播放地址| 国产综合色精品一区二区三区| 日本va欧美va欧美va精品| 国产精品久久久久影院亚瑟| 91香蕉视频污在线| 日韩精品在线网站| 国产精品九色蝌蚪自拍| 亚洲精品中文在线观看| 婷婷丁香激情综合| 亚洲图片欧美激情| 亚洲欧洲精品成人久久奇米网| 国产亲近乱来精品视频| 日本一区二区久久| 亚洲视频精选在线| 亚洲大片一区二区三区| 亚洲成av人片一区二区三区| 午夜成人免费电影| 亚洲制服丝袜一区| 亚洲综合免费观看高清完整版在线 | 欧美主播一区二区三区美女| 日韩视频一区二区三区| 亚洲欧美一区二区在线观看| 亚洲成人福利片| 色老头久久综合| 亚洲视频1区2区| 国产一区 二区 三区一级| 裸体歌舞表演一区二区| 成人av网站免费观看| 制服视频三区第一页精品| 中文字幕乱码亚洲精品一区| 久久综合狠狠综合| 99在线精品免费| 亚洲精品中文字幕乱码三区| 7777精品伊人久久久大香线蕉经典版下载 | 99视频一区二区三区| 午夜电影网亚洲视频| 欧美三级午夜理伦三级中视频| 亚洲黄色片在线观看| 免费一级片91| 日本精品视频一区二区| 亚洲精品在线观看视频| 亚洲午夜羞羞片| 91免费观看视频在线| 久久综合九色综合欧美98| 日韩av一区二区在线影视| 欧美区视频在线观看| 中文久久乱码一区二区| 国产一区 二区 三区一级| 日韩精品专区在线影院重磅| 日韩高清电影一区| 国产乱子轮精品视频| 狠狠色综合播放一区二区| 国产精品一卡二| 欧美中文字幕一区| 久久美女高清视频| 国产精品久久久爽爽爽麻豆色哟哟| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美视频日韩视频| 久久综合成人精品亚洲另类欧美| 国产精品99久久久久久有的能看| 在线国产电影不卡| 亚洲综合色网站| 色综合久久久久综合体| 久久久91精品国产一区二区精品 | 欧美日韩一区中文字幕| 视频一区二区中文字幕| 亚洲日本va午夜在线电影| 成人午夜又粗又硬又大| 精品久久国产老人久久综合| 91福利社在线观看| 精品无码三级在线观看视频| 国产精品拍天天在线| 欧美日本韩国一区| 男男gaygay亚洲| 欧美亚洲动漫制服丝袜| 午夜电影一区二区| 欧美精品一区二区在线观看| 国产精品一二三区在线| 一区二区三区小说| 日韩亚洲欧美综合| 亚洲男人天堂一区| 久久精品国产亚洲高清剧情介绍 | 欧美经典一区二区| 国产精品福利一区二区| 韩国视频一区二区| 日韩欧美在线网站| 久久成人免费日本黄色| 日韩一级高清毛片| 久久99久久99精品免视看婷婷| 欧美色区777第一页| 天堂一区二区在线免费观看| 7777女厕盗摄久久久| 狠狠狠色丁香婷婷综合激情| 中文字幕av一区二区三区| a4yy欧美一区二区三区| 亚洲三级在线播放| 欧美日韩精品一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 日韩视频在线观看一区二区| 色综合天天性综合| 国产一区在线观看麻豆| 欧美成人乱码一区二区三区| 亚洲免费视频成人| 色噜噜狠狠色综合欧洲selulu| 亚洲一区二区三区三| 日日摸夜夜添夜夜添国产精品| 国产精品伊人色| 日韩一级精品视频在线观看| 在线一区二区三区四区五区| 在线观看三级视频欧美| 成人福利视频在线| 成人国产精品免费网站| 国产精品亚洲人在线观看| 麻豆91精品视频| 天堂久久久久va久久久久| 伊人性伊人情综合网| 北条麻妃国产九九精品视频| 亚洲欧美色图小说| 中文字幕第一区综合| 日韩精品一区二区三区视频在线观看 | 亚洲日本韩国一区| 欧美精品成人一区二区三区四区| 欧美亚洲国产一卡| 欧美老女人第四色| 欧美日韩情趣电影| 日韩一区二区影院| 日韩一级完整毛片| 久久久亚洲综合| 国产精品伦理一区二区| 中文字幕一区日韩精品欧美| 亚洲国产精品久久久久婷婷884| 一区二区三区不卡在线观看| 三级精品在线观看| 久久成人免费网站| 亚洲高清久久久| 国内精品免费**视频| 成人午夜在线视频| 欧美高清性hdvideosex| 4438亚洲最大| 日韩国产欧美三级| 激情综合网最新| 国产99久久久精品| 欧美日韩性生活| 6080日韩午夜伦伦午夜伦| 国产欧美日本一区二区三区| 国产精品成人免费| 亚洲国产精品久久人人爱| 韩国av一区二区| jizz一区二区| 精品99一区二区| 国产精品久久久久久久久免费相片| 国产精品丝袜在线| 免费一区二区视频| 成人高清视频在线| 精品国产免费人成电影在线观看四季 | 欧美午夜理伦三级在线观看| 欧美一区二区三区成人| 亚洲另类色综合网站| 日本视频一区二区| 麻豆成人综合网| 555www色欧美视频| 国产欧美精品一区| 国产综合色视频| 欧美午夜不卡在线观看免费| 国产精品国产三级国产普通话99| 亚洲成av人片| 国产91精品免费| 久久蜜桃av一区精品变态类天堂| 一区二区三区欧美久久| jlzzjlzz亚洲女人18| 91精品蜜臀在线一区尤物| 一区二区中文视频| 亚洲电影一区二区| 成人在线视频一区二区| 日韩精品成人一区二区在线| 久久久精品天堂| 国产一区二区三区免费观看| 欧美一级电影网站| 成人午夜电影久久影院| 久久蜜桃香蕉精品一区二区三区| 久久精品免费看| 亚洲国产中文字幕在线视频综合| 成人午夜视频免费看|