成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Redis集合類型使用說(shuō)明

開(kāi)發(fā) 前端 Redis
今天我們了解一下Redis中的集合類型,也就是set集合。在Redis中set也是可以保存多個(gè)字符串的。那么set集合和list鏈表到底有什么不同呢?下面我們重點(diǎn)介紹一下它們之間的不同。

  今天我們了解一下Redis中的集合類型,也就是set集合。在Redis中set也是可以保存多個(gè)字符串的。那么set集合和list鏈表到底有什么不同呢?下面我們重點(diǎn)介紹一下它們之間的不同。

  • set中的元素是不可以重復(fù)的,而list是可以保存重復(fù)元素的。
  • set中的元素是無(wú)序的,而list中的元素是有序的。
  • set中的元素不能通過(guò)索引下標(biāo)獲取元素,而list中的元素則可以通過(guò)索引下標(biāo)獲取元素。
  • 除此之外set還支持更高級(jí)的功能,例如多個(gè)set取交集、并集、差集、等等。

下面我們介紹一下set中的相關(guān)命令。

[[278196]]

命令

一、集合內(nèi)操作

1.添加元素

  1. sadd key member [member ...] 
Redis集合類型使用說(shuō)明

sadd命令也是有返回值的,它的返回值就是當(dāng)前執(zhí)行sadd命令成功添加元素的個(gè)數(shù),因?yàn)閟et中不能保存重復(fù)元素,所以在執(zhí)行:

  1. sadd setkey c d 

命令時(shí),返回的是1,而不是2。因?yàn)樵豤,已經(jīng)成功保存到set中,不在繼續(xù)保存了,只能將d保存到set中。

2.刪除元素

  1. srem key member [member ...] 
Redis集合類型使用說(shuō)明

 

srem命令和sadd命令一樣也是有返回值的,返回值就是當(dāng)前刪除元素的個(gè)數(shù)。

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

  1. scard key 
Redis集合類型使用說(shuō)明

scard命令的時(shí)間復(fù)雜度為O(1),scard命令不會(huì)遍歷set中的所有元素,而是直接使用Redis中的內(nèi)部變量。

4.判讀元素是否在集合中

  1. sismember key member 
Redis集合類型使用說(shuō)明

sismember命令也有返回值,如果返回值為1則表示當(dāng)前元素在當(dāng)前set中,如果返回0則表示當(dāng)前元素不在set中。

5.隨機(jī)從set中返回指定個(gè)數(shù)元素

  1. srandmember key [count
Redis集合類型使用說(shuō)明

srandmember命令中有一個(gè)可選參數(shù)count,count參數(shù)指的是返回元素的個(gè)數(shù),如果當(dāng)前set中的元素個(gè)數(shù)小于count,則srandmember命令返回當(dāng)前set中的所有元素,如果count參數(shù)等于0,則不返回任何數(shù)據(jù),如果count參數(shù)小于0,則隨機(jī)返回當(dāng)前count個(gè)數(shù)的元素,不管當(dāng)前set中的元素個(gè)數(shù)為多少。

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

  1. spop key [count

 Redis集合類型使用說(shuō)明

spop命令也是隨機(jī)從set中彈出元素,并且也支持count可選參數(shù),但有一點(diǎn)和srandmember命令不同。spop命令在隨機(jī)彈出元素之后,會(huì)將彈出的元素從set中刪除,而srandmember命令則不同,只會(huì)隨機(jī)彈出元素,并不會(huì)將元素從set中刪除。

7.獲取所有元素

  1. smembers key 
Redis集合類型使用說(shuō)明

smembers命令雖然能獲取當(dāng)前set中所有的元素,但smembers命令返回元素的順序與sadd添加元素的順序不一定相同,這也就是前面提到過(guò)的保存在set中的元素是無(wú)序的。

二、集合間操作

1.集合的交集

  1. sinter key [key ...] 
Redis集合類型使用說(shuō)明

2.集合的并集

  1. sunion key [key ...] 
Redis集合類型使用說(shuō)明

3.集合的差集

  1. sdiff key [key ...] 
Redis集合類型使用說(shuō)明

4.將集合的交集、并集、差集的結(jié)果保存

  1. sinterstore destination key [key ...] 
  2. sunionstore destination key [key ...] 
  3. sdiffstore destination key [key ...] 

 

Redis集合類型使用說(shuō)明

為什么Redis要提供了sinterstore、sunionstore、sdiffstore命令來(lái)將集合的交集、并集、差集的結(jié)果保存起來(lái)呢?這是因?yàn)镽edis在進(jìn)行上述比較時(shí),會(huì)比較耗費(fèi)時(shí)間,所以為了提高性能可以將交集、并集、差集的結(jié)果提前保存時(shí)來(lái),這樣在需要使用時(shí),可以直接通過(guò)smembers命令獲取。

下面我們看一下set中相關(guān)命令的時(shí)間復(fù)雜度。

Redis集合類型使用說(shuō)明

內(nèi)部編碼

  • intset(整數(shù)集合):當(dāng)集合中的元素都是整數(shù),并且集合中的元素個(gè)數(shù)小于512個(gè)時(shí),Redis會(huì)選用intset作為底層內(nèi)部實(shí)現(xiàn)。
  • hashtable(哈希表):當(dāng)條件不滿足上述時(shí),Redis會(huì)采用hashtable作為底層實(shí)現(xiàn)。

備注:我們可以通過(guò)set-max-intset-entries參數(shù)來(lái)設(shè)置上述中的默認(rèn)參數(shù)。

下面我們看一下具體的事例,來(lái)驗(yàn)證我們上面提到的內(nèi)部編碼。

Redis集合類型使用說(shuō)明

1.當(dāng)元素個(gè)數(shù)較少并且都是整數(shù)時(shí),內(nèi)部編碼為intset。

Redis集合類型使用說(shuō)明

2.當(dāng)元素不全是整數(shù)時(shí),內(nèi)部編碼為hashtable。

3.當(dāng)元素個(gè)數(shù)超過(guò)512個(gè)時(shí),內(nèi)部編碼為hashtable。

Redis集合類型使用說(shuō)明
Redis集合類型使用說(shuō)明

上述命令就是Redis中的集合相關(guān)的知識(shí),如有不正確的地方歡迎指出,謝謝。

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2013-10-31 10:59:41

Clouda使用

2009-12-15 15:13:07

.NET Framew

2009-12-21 10:10:25

Oracle產(chǎn)品

2010-05-27 14:02:04

SVN使用說(shuō)明

2010-05-27 14:28:41

TortoiseSVN

2009-12-24 16:20:43

WPF Tooltip

2009-12-28 11:34:22

WPF處理消息

2010-06-03 13:49:04

Sendmail 配置

2011-03-15 10:00:01

NetfilterIPTables

2010-05-27 14:18:00

SVN使用說(shuō)明

2009-12-25 18:12:43

WPF裝飾器

2009-12-15 10:17:38

VS 2010軟件

2020-06-28 09:03:26

Linuxtree命令目錄

2010-05-07 13:43:27

Unix Shell

2010-07-28 09:49:27

FlexBuilder

2010-05-27 14:38:37

2010-01-05 16:33:35

使用JSON

2009-12-18 14:20:26

ADO.NET組件

2010-05-27 13:48:30

SVN使用說(shuō)明

2009-12-25 17:01:21

ADO參數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 看a网站 | 日韩中文一区二区三区 | 91福利网 | 亚洲一区二区三区四区在线观看 | 男女羞羞的网站 | 羞羞的视频在线看 | 国产精品国产成人国产三级 | 九色91视频 | 一级做受毛片免费大片 | 米奇成人网 | 国产精品福利久久久 | 免费国产视频 | 欧美精品中文字幕久久二区 | 无人区国产成人久久三区 | 欧美成人猛片aaaaaaa | 亚洲人a | 国产精品大片在线观看 | 免费成人高清在线视频 | 一区二区av | 99久热在线精品视频观看 | 国产精品久久午夜夜伦鲁鲁 | 在线欧美视频 | 成人一区二区三区在线观看 | 91免费在线 | 亚洲性在线 | 久久午夜精品福利一区二区 | 自拍偷拍视频网 | 午夜专区 | 日韩三级一区 | 亚洲综合久久精品 | 91色啪| 久久69精品久久久久久久电影好 | 一区二区三区久久久 | 日日操夜夜操视频 | 国产1区2区 | 国产日韩欧美在线一区 | 亚洲高清视频在线 | 怡红院成人在线视频 | 欧美黑人激情 | 欧美一区二区免费 | 日韩成人av在线播放 |