Python利用redis-py實(shí)現(xiàn)集合與有序集合的常用指令操作
集合數(shù)據(jù)類型的添加操作
在 “redis-py” 中也是通過(guò) “sadd” 這條指令去創(chuàng)建添加集合數(shù)據(jù)類型的,這一點(diǎn)與在 “redis” 中是一致的。示例如下:
con.sadd("JobNumber", 1001, 1002, 1003) # 這里的 con 就是創(chuàng)建的連接的變量 # sadd 指令實(shí)現(xiàn)集合數(shù)據(jù)類型的創(chuàng)建,并添加對(duì)應(yīng)的元素(創(chuàng)建 JobNumber 集合,并添加元素 1001、1002、1003) # 集合元素不可重復(fù)
集合數(shù)據(jù)類型的刪除元素操作
同樣的,與 “redis” 一樣,在 “redis-py” 中也是用 “srem” 指令執(zhí)行刪除元素的操作
con.srem("JobNumber", 1001) # 這里的 con 就是創(chuàng)建的連接的變量 # srem 指令實(shí)現(xiàn)集合數(shù)據(jù)類型的指定元素刪除
獲取集合數(shù)據(jù)類型的所有元素
獲取集合數(shù)據(jù)類型中的所有元素的指令,依然是與 “redis” 中相同,使用的是 “smembers”
con.smembers("JobNumber") # 這里的 con 就是創(chuàng)建的連接的變量 # smembers 指令實(shí)現(xiàn)獲取集合數(shù)據(jù)類型的所有元素
有序集合數(shù)據(jù)類型的添加操作
“redis-py” 中針對(duì)有序集合的添加操作與 “redis” 中使用的也是相同的 “zadd” 命令。
但是在 python 中使用起來(lái)有些特殊:
在 “redis” 中我們添加有序集合數(shù)據(jù)類型的分?jǐn)?shù)值是先寫(xiě) “分?jǐn)?shù)值” ,再寫(xiě) “元素值” 的寫(xiě)法,如 ZADD HotSearch 0 Java 0 Python
但是在 python 中就不能這樣寫(xiě)了,在 python 中傳入的第一個(gè)參數(shù)是記錄的名稱,第二個(gè)參數(shù)則需要為字典,且 “元素值” 在前,“分?jǐn)?shù)值” 在后,如 ZADD("HotSearch", {"Java": 1, "Python": 3, "C++": 5} ...)
如此,有序集合才會(huì)被創(chuàng)建;元素也才會(huì)被添加到有序集合的記錄中。
con.zadd("HotSearch", {"Java": 1, "Python": 3, "C++": 5}) # 這里的 con 就是創(chuàng)建的連接的變量 # zadd 指令實(shí)現(xiàn)有序集合數(shù)據(jù)類型的創(chuàng)建,并添加對(duì)應(yīng)的元素(創(chuàng)建 HotSearch 集合,并添加元素) # 與集合一樣,有序集合中的元素同樣不可重復(fù)。
有序集合數(shù)據(jù)類型的分?jǐn)?shù)值增加操作
在 “redis-py” 中操作有序集合數(shù)據(jù)類型增加分?jǐn)?shù)的指令與 “redis” 也是一致的,且使用方法上,也沒(méi)有任何區(qū)別。
con.zincrby("HotSearch", "10", "Java") # 這里的 con 就是創(chuàng)建的連接的變量 # zincrby 指令實(shí)現(xiàn)有序集合數(shù)據(jù)類型的分值的增加
有序集合數(shù)據(jù)類型的排序指令(降序)
在 “redis-py” 中,也是使用的 “zrevrange” 實(shí)現(xiàn)有序集合中降序排序(按照分值進(jìn)行降序排序)
con.zrevrange("HotSearch", 0, -1) # 這里的 con 就是創(chuàng)建的連接的變量 # zrevrange 指令實(shí)現(xiàn)有序集合中降序排序(按照分值進(jìn)行降序排序)
集合與有序集合相關(guān)指令演示小案例
example_set.py 模塊演示案例如下:(其實(shí)這里同樣應(yīng)該使用 try...except...finally 進(jìn)行異常捕獲,但是我依然懶得寫(xiě)了...)
# coding:utf-8 import redis from redis_db import redis_Pool # 導(dǎo)入 redis_db模塊 的 redis_Pool """ 創(chuàng)建 redis 連接 """ con = redis.Redis( connection_pool=redis_Pool ) """ 利用 redis-py 實(shí)現(xiàn)對(duì) 集合 數(shù)據(jù)類型的添加操作(邏輯庫(kù) 0) """ con.sadd("JobNumber", 1001, 1002, 1003) """ 利用 redis-py 實(shí)現(xiàn)對(duì) 集合 數(shù)據(jù)類型的指定元素的刪除操作 """ con.srem("JobNumber", 1001) """ 利用 redis-py 實(shí)現(xiàn)對(duì) 集合 數(shù)據(jù)類型的全部元素讀取 """ result = con.smembers("JobNumber") for set_1 in result: print("JobNumber 集合 中的元素:", set_1.decode("utf-8")) """ 利用 redis-py 實(shí)現(xiàn)對(duì) 有序集合 數(shù)據(jù)類型的添加操作(注意:傳入的第一個(gè)參數(shù)是記錄的名稱,第二個(gè)參數(shù)則需要為字典,且 "元素值" 在前,"分?jǐn)?shù)值" 在后) """ con.zadd("HotSearch", {"Java": 1, "Python": 3, "C++": 5}) """ 利用 redis-py 實(shí)現(xiàn)對(duì) 有序集合 數(shù)據(jù)類型指定元素的分值增加 """ con.zincrby("HotSearch", "10", "Java") """ 利用 redis-py 實(shí)現(xiàn)對(duì) 有序集合 數(shù)據(jù)類型的排序指令(降序) """ result = con.zrevrange("HotSearch", 0, -1) for set_2 in result: print("HotSearch 有序集合 中的元素:", set_2.decode("utf-8")) """ 刪除 redis 連接 (redis連接被刪除后,會(huì)自動(dòng)被 Python 的垃圾回收機(jī)制回收) """ del con
到此這篇關(guān)于Python利用redis-py實(shí)現(xiàn)集合與有序集合的常用指令操作的文章就介紹到這了,更多相關(guān)Python redis-py集合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jupyter?notebook內(nèi)核配置的圖文教程
Jupyter?Notebook是基于網(wǎng)頁(yè)的用于交互計(jì)算的應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于jupyter?notebook內(nèi)核配置的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02python實(shí)現(xiàn)簡(jiǎn)單倒計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單倒計(jì)時(shí)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04python3 pillow模塊實(shí)現(xiàn)簡(jiǎn)單驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了python3 pillow模塊實(shí)現(xiàn)簡(jiǎn)單驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10Python實(shí)現(xiàn)圖像壓縮和圖像處理詳解
隨著現(xiàn)在短視頻類越來(lái)越火,隨之而來(lái)的就是大量的視頻圖像的處理。這篇文章主要為大家介紹了Python如何一鍵實(shí)現(xiàn)圖像壓縮和圖像處理,希望對(duì)你們有所幫助2022-07-07Python使用pickle模塊存儲(chǔ)數(shù)據(jù)報(bào)錯(cuò)解決示例代碼
這篇文章主要介紹了Python使用pickle模塊存儲(chǔ)數(shù)據(jù)報(bào)錯(cuò)解決示例代碼,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01