真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Redis列表與集合怎么使用

這篇文章主要講解了“redis列表與集合怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Redis列表與集合怎么使用”吧!

目前創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、貢山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

列表

列表是Redis中另外一種數(shù)據(jù)類型。下面我們來看看列表中一些基本的操作命令。

LPUSH

將一個(gè)或多個(gè)值value插入到列表key的表頭,如果有多個(gè)value值,那么各個(gè)value值按從左到右的順序依次插入到表頭,如下:

127.0.0.1:6379> LPUSH k1 v1 v2 v3
(integer) 3

LRANGE

返回列表key中指定區(qū)間內(nèi)的元素,區(qū)間以偏移量start和stop指定,下標(biāo)(index)參數(shù)start和stop都以0為底,即0表示列表的第一個(gè)元素,1表示列表的第二個(gè)元素,以此類推。我們也可以使用負(fù)數(shù)下標(biāo),以-1表示列表的最后一個(gè)元素, -2 表示列表的倒數(shù)第二個(gè)元素,以此類推。如下:

127.0.0.1:6379> LRANGE k1 0 -1
1) "v3"
2) "v2"
3) "v1"

RPUSH

RPUSH與LPUSH的功能基本一致,不同的是RPUSH的中的value值是按照從右到左的順序依次插入,如下:

127.0.0.1:6379> RPUSH k2 1 2 3 4 5
(integer) 5
127.0.0.1:6379> LRANGE k2 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"

RPOP

RPOP命令可以移除并返回列表key的尾元素。如下:

127.0.0.1:6379> RPOP k2
"5"
127.0.0.1:6379> LRANGE k2 0 -1
1) "1"
2) "2"
3) "3"
4) "4"

LPOP

LPOP和RPOP類似,不同的是LPOP移除并返回列表key的頭元素,如下:

127.0.0.1:6379> LPOP k2
"1"
127.0.0.1:6379> LRANGE k2 0 -1
1) "2"
2) "3"
3) "4"

LINDEX

LINDEX命令可以返回列表key中,下標(biāo)為index的元素,正數(shù)下標(biāo)0表示第一個(gè)元素,也可以使用負(fù)數(shù)下標(biāo),-1表示倒數(shù)第一個(gè)元素,如下:

127.0.0.1:6379> LINDEX k2 0
"2"
127.0.0.1:6379> LINDEX k2 -1
"4"

LTRIM

LTRIM命令可以對(duì)一個(gè)列表進(jìn)行修剪,即讓列表只保留指定區(qū)間內(nèi)的元素,不在指定區(qū)間之內(nèi)的元素都將被刪除。下標(biāo)與之前介紹的寫法都一致,這里不贅述。如下:

127.0.0.1:6379> LRANGE k1 0 -1
1) "v3"
2) "v2"
3) "v1"
127.0.0.1:6379> LTRIM k1 0 1
OK
127.0.0.1:6379> LRANGE k1 0 -1
1) "v3"
2) "v2"

BLPOP

BLPOP是阻塞式列表的彈出原語。它是命令LPOP的阻塞版本,當(dāng)給定列表內(nèi)沒有任何元素可供彈出的時(shí)候,連接將被BLPOP命令阻塞。當(dāng)給定多個(gè)key參數(shù)時(shí),按參數(shù)key的先后順序依次檢查各個(gè)列表,彈出第一個(gè)非空列表的頭元素。同時(shí),在使用該命令時(shí)也需要指定阻塞的時(shí)長(zhǎng),時(shí)長(zhǎng)單位為秒,在該時(shí)長(zhǎng)內(nèi)如果沒有元素可供彈出,則阻塞結(jié)束。返回的結(jié)果是key和value的組合,如下:

127.0.0.1:6379> BLPOP k1 10
1) "k1"
2) "v2"
127.0.0.1:6379> BLPOP k1 10
(nil)
(10.03s)

最后,BRPOP、BPOPLPUSH、BRPOPLPUSH都是相應(yīng)命令的阻塞版本,這里就不贅述了。

集合

接下來我們來看看集合中一些常見的操作命令:

SADD

SADD命令可以添加一個(gè)或多個(gè)指定的member元素到集合的key中,指定的一個(gè)或者多個(gè)元素member如果已經(jīng)在集合key中存在則忽略,如果集合key不存在,則新建集合key,并添加member元素到集合key中。如下:

127.0.0.1:6379> SADD k1 v1 v2 v3 v4
(integer) 4

SREM

SREM命令可以在key集合中移除指定的元素,如果指定的元素不是key集合中的元素則忽略。如果key集合不存在則被視為一個(gè)空的集合,該命令返回0。如下:

127.0.0.1:6379> SREM k1 v2
(integer) 1
127.0.0.1:6379> SREM k1 v10
(integer) 0

SISMEMBER

SISMEMBER命令可以返回成員member是否是存儲(chǔ)的集合key的成員。如下:

127.0.0.1:6379> SISMEMBER k1 v3
(integer) 1

SCARD

SCARD命令可以返回集合存儲(chǔ)的key的基數(shù)(集合元素的數(shù)量),如下:

127.0.0.1:6379> SCARD k1
(integer) 3

SMEMBERS

SMEMBERS命令可以返回key集合所有的元素,如下:

127.0.0.1:6379> SMEMBERS k1
1) "v4"
2) "v1"
3) "v3"

SRANDMEMBER

SRANDMEMBER僅需我們提供key參數(shù),它就會(huì)隨機(jī)返回key集合中的一個(gè)元素,從Redis2.6開始,該命令也可以接受一個(gè)可選的count參數(shù),如果count是整數(shù)且小于元素的個(gè)數(shù),則返回count個(gè)隨機(jī)元素,如果count是整數(shù)且大于集合中元素的個(gè)數(shù)時(shí),則返回集合中的所有元素,當(dāng)count是負(fù)數(shù),則會(huì)返回一個(gè)包含count的絕對(duì)值的個(gè)數(shù)元素的數(shù)組,如果count的絕對(duì)值大于元素的個(gè)數(shù),則返回的結(jié)果集里會(huì)出現(xiàn)一個(gè)元素出現(xiàn)多次的情況。如下:

127.0.0.1:6379> SRANDMEMBER k1
"v4"
127.0.0.1:6379> SRANDMEMBER k1 2
1) "v4"
2) "v1"
127.0.0.1:6379> SRANDMEMBER k1 5
1) "v4"
2) "v1"
3) "v3"
127.0.0.1:6379> SRANDMEMBER k1 -1
1) "v4"
127.0.0.1:6379> SRANDMEMBER k1 -5
1) "v3"
2) "v1"
3) "v1"
4) "v3"
5) "v3"

SPOP

SPOP命令的用法和SRANDMEMBER類似,不同的是,SPOP每次選擇一個(gè)隨機(jī)的元素之后,該元素會(huì)出棧,而SRANDMEMBER則不會(huì)出棧,只是將該元素展示出來。

SMOVE

SMOVE命令可以將member從source集合移動(dòng)到destination集合中,如下:

127.0.0.1:6379> SMOVE k1 k2 v1
(integer) 1
127.0.0.1:6379> SMEMBERS k1
1) "v4"
2) "v3"
127.0.0.1:6379> SMEMBERS k2
1) "v1"

SDIFF

SDIFF可以用來返回一個(gè)集合與給定集合的差集的元素,如下:

127.0.0.1:6379> SDIFF k1 k2
1) "v4"
2) "v3"

k1中的元素是v3、v4,k2中的元素是v1,差集就是v3、v4.

SDIFFSTORE

SDIFFSTORE命令與SDIFF命令基本一致,不同的是SDIFFSTORE命令會(huì)將結(jié)果保存在一個(gè)集合中,如下:

127.0.0.1:6379> SDIFFSTORE key k1 k2
(integer) 2
127.0.0.1:6379> SMEMBERS key
1) "v4"
2) "v3"

SINTER

SINTER命令可以用來計(jì)算指定key之間元素的交集,如下:

127.0.0.1:6379> SMEMBERS k1
1) "v4"
2) "v3"
127.0.0.1:6379> SMEMBERS k2
1) "v1"
2) "v3"
127.0.0.1:6379> SINTER k1 k2
1) "v3"

SINTERSTORE

SINTERSTORE命令和SINTER命令類似,不同的是它會(huì)將結(jié)果保存到一個(gè)新的集合中,如下:

127.0.0.1:6379> SINTERSTORE k3 k1 k2
(integer) 1
127.0.0.1:6379> SMEMBERS k3
1) "v3"

SUNION

SUNION可以用來計(jì)算兩個(gè)集合的并集,如下:

127.0.0.1:6379> SUNION k1 k2
1) "v4"
2) "v1"
3) "v3"

SUNIONSTORE

SUNIONSTORE和SUNION命令類似,不同的是它會(huì)將結(jié)果保存到一個(gè)新的集合中,如下:

127.0.0.1:6379> SUNIONSTORE k4 k1 k2
(integer) 3
127.0.0.1:6379> SMEMBERS k4
1) "v4"
2) "v1"
3) "v3"

感謝各位的閱讀,以上就是“Redis列表與集合怎么使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Redis列表與集合怎么使用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


文章題目:Redis列表與集合怎么使用
標(biāo)題鏈接:http://weahome.cn/article/gihgjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部