Python利用redis-py實(shí)現(xiàn)集合與有序集合的常用指令操作
集合數(shù)據(jù)類(lèi)型的添加操作
在 “redis-py” 中也是通過(guò) “sadd” 這條指令去創(chuàng)建添加集合數(shù)據(jù)類(lèi)型的,這一點(diǎn)與在 “redis” 中是一致的。示例如下:
con.sadd("JobNumber", 1001, 1002, 1003)
# 這里的 con 就是創(chuàng)建的連接的變量
# sadd 指令實(shí)現(xiàn)集合數(shù)據(jù)類(lèi)型的創(chuàng)建,并添加對(duì)應(yīng)的元素(創(chuàng)建 JobNumber 集合,并添加元素 1001、1002、1003)
# 集合元素不可重復(fù)
集合數(shù)據(jù)類(lèi)型的刪除元素操作
同樣的,與 “redis” 一樣,在 “redis-py” 中也是用 “srem” 指令執(zhí)行刪除元素的操作
con.srem("JobNumber", 1001)
# 這里的 con 就是創(chuàng)建的連接的變量
# srem 指令實(shí)現(xiàn)集合數(shù)據(jù)類(lèi)型的指定元素刪除
獲取集合數(shù)據(jù)類(lèi)型的所有元素
獲取集合數(shù)據(jù)類(lèi)型中的所有元素的指令,依然是與 “redis” 中相同,使用的是 “smembers”
con.smembers("JobNumber")
# 這里的 con 就是創(chuàng)建的連接的變量
# smembers 指令實(shí)現(xiàn)獲取集合數(shù)據(jù)類(lèi)型的所有元素
有序集合數(shù)據(jù)類(lèi)型的添加操作
“redis-py” 中針對(duì)有序集合的添加操作與 “redis” 中使用的也是相同的 “zadd” 命令。
但是在 python 中使用起來(lái)有些特殊:
在 “redis” 中我們添加有序集合數(shù)據(jù)類(lèi)型的分?jǐn)?shù)值是先寫(xiě) “分?jǐn)?shù)值” ,再寫(xiě) “元素值” 的寫(xiě)法,如 ZADD HotSearch 0 Java 0 Python
但是在 python 中就不能這樣寫(xiě)了,在 python 中傳入的第一個(gè)參數(shù)是記錄的名稱(chēng),第二個(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ù)類(lèi)型的創(chuàng)建,并添加對(duì)應(yīng)的元素(創(chuàng)建 HotSearch 集合,并添加元素)
# 與集合一樣,有序集合中的元素同樣不可重復(fù)。
有序集合數(shù)據(jù)類(lèi)型的分?jǐn)?shù)值增加操作
在 “redis-py” 中操作有序集合數(shù)據(jù)類(lèi)型增加分?jǐn)?shù)的指令與 “redis” 也是一致的,且使用方法上,也沒(méi)有任何區(qū)別。
con.zincrby("HotSearch", "10", "Java")
# 這里的 con 就是創(chuàng)建的連接的變量
# zincrby 指令實(shí)現(xiàn)有序集合數(shù)據(jù)類(lèi)型的分值的增加
有序集合數(shù)據(jù)類(lèi)型的排序指令(降序)
在 “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ù)類(lèi)型的添加操作(邏輯庫(kù) 0)
"""
con.sadd("JobNumber", 1001, 1002, 1003)
"""
利用 redis-py 實(shí)現(xiàn)對(duì) 集合 數(shù)據(jù)類(lèi)型的指定元素的刪除操作
"""
con.srem("JobNumber", 1001)
"""
利用 redis-py 實(shí)現(xiàn)對(duì) 集合 數(shù)據(jù)類(lèi)型的全部元素讀取
"""
result = con.smembers("JobNumber")
for set_1 in result:
print("JobNumber 集合 中的元素:", set_1.decode("utf-8"))
"""
利用 redis-py 實(shí)現(xiàn)對(duì) 有序集合 數(shù)據(jù)類(lèi)型的添加操作(注意:傳入的第一個(gè)參數(shù)是記錄的名稱(chēng),第二個(gè)參數(shù)則需要為字典,且 "元素值" 在前,"分?jǐn)?shù)值" 在后)
"""
con.zadd("HotSearch", {"Java": 1, "Python": 3, "C++": 5})
"""
利用 redis-py 實(shí)現(xiàn)對(duì) 有序集合 數(shù)據(jù)類(lèi)型指定元素的分值增加
"""
con.zincrby("HotSearch", "10", "Java")
"""
利用 redis-py 實(shí)現(xiàn)對(duì) 有序集合 數(shù)據(jù)類(lèi)型的排序指令(降序)
"""
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)文章
Python3 Tkinter選擇路徑功能的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Python3 Tkinter選擇路徑功能的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
對(duì)python3 Serial 串口助手的接收讀取數(shù)據(jù)方法詳解
今天小編就為大家分享一篇對(duì)python3 Serial 串口助手的接收讀取數(shù)據(jù)方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Python實(shí)現(xiàn)蒙特卡洛算法小實(shí)驗(yàn)過(guò)程詳解
這篇文章主要介紹了Python實(shí)現(xiàn)基于蒙特卡洛算法過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
CNN的Pytorch實(shí)現(xiàn)(LeNet)
本文主要從CNN的Pytorch實(shí)現(xiàn)庫(kù)導(dǎo)入,模型定義,數(shù)據(jù)加載、處理,模型訓(xùn)練,代碼匯總等方面入手介紹,運(yùn)用代碼講解相關(guān)內(nèi)容非常的詳細(xì),大家如果有需要了解相關(guān)知識(shí)的可以參考這篇文章2021-09-09
解決python 自動(dòng)安裝缺少模塊的問(wèn)題
今天小編就為大家分享一篇解決python 自動(dòng)安裝缺少模塊的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
詳解python使用turtle庫(kù)來(lái)畫(huà)一朵花
這篇文章主要介紹了python使用turtle庫(kù)來(lái)畫(huà)一朵花,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
python 循環(huán)數(shù)據(jù)賦值實(shí)例
今天小編就為大家分享一篇python 循環(huán)數(shù)據(jù)賦值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
詳解關(guān)于Django中ORM數(shù)據(jù)庫(kù)遷移的配置
這篇文章主要介紹了詳解關(guān)于Django中ORM數(shù)據(jù)庫(kù)遷移的配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10

