成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python--Redis實戰(zhàn):第三章:Redis命令:第三節(jié):集合

HollisChuang / 1993人閱讀

摘要:上一篇文章實戰(zhàn)第三章命令第二節(jié)列表下一篇文章實戰(zhàn)第三章命令第四節(jié)散列

上一篇文章:Python--Redis實戰(zhàn):第三章:Redis命令:第二節(jié):列表
下一篇文章:Python--Redis實戰(zhàn):第三章:Redis命令:第四節(jié):散列

Redis的集合以無序的方式來存儲多個各不相同的元素,用戶可以快速地對集合執(zhí)行添加元素操作、移除元素操作、以及檢查一個元素是否存在于集合里。本節(jié)將對最常用的集合命令進(jìn)行介紹,包括:插入命令、移除命令、將元素從一個集合移動到另一個集合的命令、以及對多個集合執(zhí)行交集運算、并集運算、差集運算的命令。

下表展示了其中一部分最常用的集合命令:

命令 用例 用例描述
sadd sadd key-name item [item ...] 將一個或多個元素添加到集合里面,并返回被添加元素當(dāng)中原本并不存在于集合里面的元素數(shù)量
srem srem key-name item [item ...] 從集合里面移除一個或多個元素,并返回被移除元素的數(shù)量
sismember sismember key-name item 檢查元素item是否存在于集合key-name里
scard scard key-name 返回集合包含的元素的數(shù)量
smembers smembers key-name 返回集合包含的所有元素
srandmember srandmember key-name [count] 從集合里面隨機(jī)地返回一個或多個元素。當(dāng)count為正數(shù)時,命令返回的隨機(jī)元素不會重復(fù);當(dāng)count為負(fù)數(shù)時,命令返回的隨機(jī)元素可能會出現(xiàn)重復(fù)。
spop spop key-name 隨機(jī)地移除集合中的一個元素,并返回被移除的元素。
smove smove source-key dest-key item 如果集合source-key包含元素item,那么從集合source-key里面移除元素item,并將元素item添加到集合dest-key中;如果item被成功移除,那么命令返回1,否則返回0
Redis常用集合命令使用實例
import redis #導(dǎo)入redis包包

#與本地redis進(jìn)行鏈接,地址為:localhost,端口號為6379
r=redis.StrictRedis(host="localhost",port=6379)

r.delete("set-key")

#sadd命令會將那些目前并不存在于集合里面的元素添加到集合里面,并返回被添加元素的數(shù)量
print(r.sadd("set-key","a","b","c"))

#srem命令返回的是被移除元素的數(shù)量
print(r.srem("set-key","c","d"))
print(r.srem("set-key","c","d"))


#查看集合包含的元素數(shù)量
print(r.scard("set-key"))

#獲取集合包含的所有元素
print(r.smembers("set-key"))

#可以很容易地將元素從一個集合移動到另一個集合
print(r.smove("set-key","set-key2","a"))
#在執(zhí)行smove命令時,如果用戶想要移動的元素不存在于第一個集合里,那么移動操作就不會執(zhí)行,返回False
print(r.smove("set-key","set-key2","a"))


print(r.smembers("set-key2"))

運行結(jié)果:

3
1
0
2
{b"a", b"b"}
True
False
{b"a"}

通過使用上面展示的命令,我們可以將各不相同的元素添加到集合里面,但集合真正厲害的地方在于組合和關(guān)聯(lián)多個集合,下表展示了相關(guān)的命令:

命令 用例 用例描述
sdiff sdiff key-name [key-name ...] 返回那些存在于第一個集合、但不存在于其它集合中的元素(數(shù)學(xué)上的差集運算)
sdiffstore sdiffstore dest-key key-name [key-name ...] 將那些存在于第一個集合但不存在于其他集合中的元素(數(shù)學(xué)上的差集運算)存儲到dest-key鍵里面
sinter sinter key-name [key-name ...] 返回那些同時存在于所有集合中的元素(數(shù)學(xué)上的交集運算)
sinterstore sinterstore dest-key key-name [key-name ...] 將那些同時存在于所有集合的元素(數(shù)學(xué)上的交集運算)存儲到dest-key鍵里面
sunion sunion key-name [key-name ...] 返回那些至少存在于一個集合中的元素(數(shù)學(xué)上的并集計算)
sunionstore sunionstore dest-key key-name [key-name ...] 將那些至少存在于一個集合中的元素(數(shù)學(xué)上的并集計算)存儲到dest-key鍵里面

這些命令分別是并集運算、交集運算和差集運算這3個基本集合操作的”返回結(jié)果“版本和”存儲結(jié)果“版本。

示例:

import redis #導(dǎo)入redis包包

#與本地redis進(jìn)行鏈接,地址為:localhost,端口號為6379
r=redis.StrictRedis(host="localhost",port=6379)

r.delete("set-key1")
r.delete("set-key2")

#首先將這一些元素添加到兩個集合里面
print(r.sadd("set-key1","a","b","c","d"))
print(r.sadd("set-key2","c","d","e","f"))

#計算出從第一個集合里面移除第二個集合包含的所有元素的結(jié)果
print(r.sdiff("set-key1","set-key2"))

#計算出同時存在于兩個集合里面的所有元素
print(r.sinter("set-key1","set-key2"))

#計算出兩個集合包含的所有元素
print(r.sunion("set-key1","set-key2"))

運行結(jié)果:

4
4
{b"b", b"a"}
{b"c", b"d"}
{b"c", b"e", b"d", b"f", b"a", b"b"}

和Python的集合相比,Redis的集合除了可以被多個客戶端遠(yuǎn)程地進(jìn)行訪問以外,其他的語義和功能基本都是相同的。

接下來的一節(jié)將對Redis的散列處理命令進(jìn)行介紹,這些命令允許用戶將多個相關(guān)的鍵值對存儲在一起,以便執(zhí)行獲取操作和更新操作。

上一篇文章:Python--Redis實戰(zhàn):第三章:Redis命令:第二節(jié):列表
下一篇文章:Python--Redis實戰(zhàn):第三章:Redis命令:第四節(jié):散列

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44875.html

相關(guān)文章

  • Python--Redis實戰(zhàn):第一章:初識Redis三節(jié):你好Redis-文章投票試煉

    摘要:為了防止用戶對同一篇文章進(jìn)行多次投票,網(wǎng)站需要為每一篇文章記錄一個已投票用戶名單。上一篇文章實戰(zhàn)第一章初識第二節(jié)數(shù)據(jù)結(jié)構(gòu)簡介下一篇文章實戰(zhàn)第二章使用構(gòu)建應(yīng)用第一節(jié)登錄和緩存 上一篇文章: Python--Redis實戰(zhàn):第一章:初識Redis:第二節(jié):Redis數(shù)據(jù)結(jié)構(gòu)簡介下一篇文章:Python--Redis實戰(zhàn):第二章:使用Redis構(gòu)建Web應(yīng)用:第一節(jié):登錄和cookie緩存 ...

    Meils 評論0 收藏0
  • Python--Redis實戰(zhàn)第三Redis命令:第四節(jié):散列

    摘要:實例導(dǎo)入包包與本地進(jìn)行鏈接,地址為,端口號為和字符串一樣,對散列中一個尚未存在的鍵執(zhí)行自增操作時,會將鍵的值當(dāng)作來處理。 上一篇文章:Python--Redis實戰(zhàn):第三章:Redis命令:第三節(jié):集合下一篇文章:Python--Redis實戰(zhàn):第三章:Redis命令:第五節(jié):有序集合 第一章提到過,Redis的散列可以讓用戶將多個鍵值對存儲到一個Redis里面。從功能上來說,Red...

    waterc 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<