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