摘要:上一篇文章實戰第三章命令第二節列表下一篇文章實戰第三章命令第四節散列
上一篇文章:Python--Redis實戰:第三章:Redis命令:第二節:列表
下一篇文章:Python--Redis實戰:第三章:Redis命令:第四節:散列
Redis的集合以無序的方式來存儲多個各不相同的元素,用戶可以快速地對集合執行添加元素操作、移除元素操作、以及檢查一個元素是否存在于集合里。本節將對最常用的集合命令進行介紹,包括:插入命令、移除命令、將元素從一個集合移動到另一個集合的命令、以及對多個集合執行交集運算、并集運算、差集運算的命令。
下表展示了其中一部分最常用的集合命令:
命令 | 用例 | 用例描述 |
---|---|---|
sadd | sadd key-name item [item ...] | 將一個或多個元素添加到集合里面,并返回被添加元素當中原本并不存在于集合里面的元素數量 |
srem | srem key-name item [item ...] | 從集合里面移除一個或多個元素,并返回被移除元素的數量 |
sismember | sismember key-name item | 檢查元素item是否存在于集合key-name里 |
scard | scard key-name | 返回集合包含的元素的數量 |
smembers | smembers key-name | 返回集合包含的所有元素 |
srandmember | srandmember key-name [count] | 從集合里面隨機地返回一個或多個元素。當count為正數時,命令返回的隨機元素不會重復;當count為負數時,命令返回的隨機元素可能會出現重復。 |
spop | spop key-name | 隨機地移除集合中的一個元素,并返回被移除的元素。 |
smove | smove source-key dest-key item | 如果集合source-key包含元素item,那么從集合source-key里面移除元素item,并將元素item添加到集合dest-key中;如果item被成功移除,那么命令返回1,否則返回0 |
import redis #導入redis包包 #與本地redis進行鏈接,地址為:localhost,端口號為6379 r=redis.StrictRedis(host="localhost",port=6379) r.delete("set-key") #sadd命令會將那些目前并不存在于集合里面的元素添加到集合里面,并返回被添加元素的數量 print(r.sadd("set-key","a","b","c")) #srem命令返回的是被移除元素的數量 print(r.srem("set-key","c","d")) print(r.srem("set-key","c","d")) #查看集合包含的元素數量 print(r.scard("set-key")) #獲取集合包含的所有元素 print(r.smembers("set-key")) #可以很容易地將元素從一個集合移動到另一個集合 print(r.smove("set-key","set-key2","a")) #在執行smove命令時,如果用戶想要移動的元素不存在于第一個集合里,那么移動操作就不會執行,返回False print(r.smove("set-key","set-key2","a")) print(r.smembers("set-key2"))
運行結果:
3 1 0 2 {b"a", b"b"} True False {b"a"}
通過使用上面展示的命令,我們可以將各不相同的元素添加到集合里面,但集合真正厲害的地方在于組合和關聯多個集合,下表展示了相關的命令:
命令 | 用例 | 用例描述 |
---|---|---|
sdiff | sdiff key-name [key-name ...] | 返回那些存在于第一個集合、但不存在于其它集合中的元素(數學上的差集運算) |
sdiffstore | sdiffstore dest-key key-name [key-name ...] | 將那些存在于第一個集合但不存在于其他集合中的元素(數學上的差集運算)存儲到dest-key鍵里面 |
sinter | sinter key-name [key-name ...] | 返回那些同時存在于所有集合中的元素(數學上的交集運算) |
sinterstore | sinterstore dest-key key-name [key-name ...] | 將那些同時存在于所有集合的元素(數學上的交集運算)存儲到dest-key鍵里面 |
sunion | sunion key-name [key-name ...] | 返回那些至少存在于一個集合中的元素(數學上的并集計算) |
sunionstore | sunionstore dest-key key-name [key-name ...] | 將那些至少存在于一個集合中的元素(數學上的并集計算)存儲到dest-key鍵里面 |
這些命令分別是并集運算、交集運算和差集運算這3個基本集合操作的”返回結果“版本和”存儲結果“版本。
示例:
import redis #導入redis包包 #與本地redis進行鏈接,地址為: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")) #計算出從第一個集合里面移除第二個集合包含的所有元素的結果 print(r.sdiff("set-key1","set-key2")) #計算出同時存在于兩個集合里面的所有元素 print(r.sinter("set-key1","set-key2")) #計算出兩個集合包含的所有元素 print(r.sunion("set-key1","set-key2"))
運行結果:
4 4 {b"b", b"a"} {b"c", b"d"} {b"c", b"e", b"d", b"f", b"a", b"b"}
和Python的集合相比,Redis的集合除了可以被多個客戶端遠程地進行訪問以外,其他的語義和功能基本都是相同的。
接下來的一節將對Redis的散列處理命令進行介紹,這些命令允許用戶將多個相關的鍵值對存儲在一起,以便執行獲取操作和更新操作。
上一篇文章:Python--Redis實戰:第三章:Redis命令:第二節:列表
下一篇文章:Python--Redis實戰:第三章:Redis命令:第四節:散列
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44875.html
摘要:為了防止用戶對同一篇文章進行多次投票,網站需要為每一篇文章記錄一個已投票用戶名單。上一篇文章實戰第一章初識第二節數據結構簡介下一篇文章實戰第二章使用構建應用第一節登錄和緩存 上一篇文章: Python--Redis實戰:第一章:初識Redis:第二節:Redis數據結構簡介下一篇文章:Python--Redis實戰:第二章:使用Redis構建Web應用:第一節:登錄和cookie緩存 ...
摘要:實例導入包包與本地進行鏈接,地址為,端口號為和字符串一樣,對散列中一個尚未存在的鍵執行自增操作時,會將鍵的值當作來處理。 上一篇文章:Python--Redis實戰:第三章:Redis命令:第三節:集合下一篇文章:Python--Redis實戰:第三章:Redis命令:第五節:有序集合 第一章提到過,Redis的散列可以讓用戶將多個鍵值對存儲到一個Redis里面。從功能上來說,Red...
閱讀 1892·2021-11-23 09:51
閱讀 1535·2021-11-19 09:40
閱讀 3209·2021-11-11 11:01
閱讀 1105·2021-09-27 13:34
閱讀 1835·2021-09-22 15:56
閱讀 2122·2019-08-30 15:52
閱讀 1061·2019-08-30 14:13
閱讀 3473·2019-08-30 14:10