Python利用redis-py实现集合与有序集合的常用指令操作
作者:不渴望力量的哈士奇 发布时间:2021-02-11 21:29:24
集合数据类型的添加操作
在 “redis-py” 中也是通过 “sadd” 这条指令去创建添加集合数据类型的,这一点与在 “redis” 中是一致的。示例如下:
con.sadd("JobNumber", 1001, 1002, 1003)
# 这里的 con 就是创建的连接的变量
# sadd 指令实现集合数据类型的创建,并添加对应的元素(创建 JobNumber 集合,并添加元素 1001、1002、1003)
# 集合元素不可重复
集合数据类型的删除元素操作
同样的,与 “redis” 一样,在 “redis-py” 中也是用 “srem” 指令执行删除元素的操作
con.srem("JobNumber", 1001)
# 这里的 con 就是创建的连接的变量
# srem 指令实现集合数据类型的指定元素删除
获取集合数据类型的所有元素
获取集合数据类型中的所有元素的指令,依然是与 “redis” 中相同,使用的是 “smembers”
con.smembers("JobNumber")
# 这里的 con 就是创建的连接的变量
# smembers 指令实现获取集合数据类型的所有元素
有序集合数据类型的添加操作
“redis-py” 中针对有序集合的添加操作与 “redis” 中使用的也是相同的 “zadd” 命令。
但是在 python 中使用起来有些特殊:
在 “redis” 中我们添加有序集合数据类型的分数值是先写 “分数值” ,再写 “元素值” 的写法,如 ZADD HotSearch 0 Java 0 Python
但是在 python 中就不能这样写了,在 python 中传入的第一个参数是记录的名称,第二个参数则需要为字典,且 “元素值” 在前,“分数值” 在后,如 ZADD("HotSearch", {"Java": 1, "Python": 3, "C++": 5} ...)
如此,有序集合才会被创建;元素也才会被添加到有序集合的记录中。
con.zadd("HotSearch", {"Java": 1, "Python": 3, "C++": 5})
# 这里的 con 就是创建的连接的变量
# zadd 指令实现有序集合数据类型的创建,并添加对应的元素(创建 HotSearch 集合,并添加元素)
# 与集合一样,有序集合中的元素同样不可重复。
有序集合数据类型的分数值增加操作
在 “redis-py” 中操作有序集合数据类型增加分数的指令与 “redis” 也是一致的,且使用方法上,也没有任何区别。
con.zincrby("HotSearch", "10", "Java")
# 这里的 con 就是创建的连接的变量
# zincrby 指令实现有序集合数据类型的分值的增加
有序集合数据类型的排序指令(降序)
在 “redis-py” 中,也是使用的 “zrevrange” 实现有序集合中降序排序(按照分值进行降序排序)
con.zrevrange("HotSearch", 0, -1)
# 这里的 con 就是创建的连接的变量
# zrevrange 指令实现有序集合中降序排序(按照分值进行降序排序)
集合与有序集合相关指令演示小案例
example_set.py 模块演示案例如下:(其实这里同样应该使用 try...except...finally 进行异常捕获,但是我依然懒得写了...)
# coding:utf-8
import redis
from redis_db import redis_Pool # 导入 redis_db模块 的 redis_Pool
"""
创建 redis 连接
"""
con = redis.Redis(
connection_pool=redis_Pool
)
"""
利用 redis-py 实现对 集合 数据类型的添加操作(逻辑库 0)
"""
con.sadd("JobNumber", 1001, 1002, 1003)
"""
利用 redis-py 实现对 集合 数据类型的指定元素的删除操作
"""
con.srem("JobNumber", 1001)
"""
利用 redis-py 实现对 集合 数据类型的全部元素读取
"""
result = con.smembers("JobNumber")
for set_1 in result:
print("JobNumber 集合 中的元素:", set_1.decode("utf-8"))
"""
利用 redis-py 实现对 有序集合 数据类型的添加操作(注意:传入的第一个参数是记录的名称,第二个参数则需要为字典,且 "元素值" 在前,"分数值" 在后)
"""
con.zadd("HotSearch", {"Java": 1, "Python": 3, "C++": 5})
"""
利用 redis-py 实现对 有序集合 数据类型指定元素的分值增加
"""
con.zincrby("HotSearch", "10", "Java")
"""
利用 redis-py 实现对 有序集合 数据类型的排序指令(降序)
"""
result = con.zrevrange("HotSearch", 0, -1)
for set_2 in result:
print("HotSearch 有序集合 中的元素:", set_2.decode("utf-8"))
"""
删除 redis 连接 (redis连接被删除后,会自动被 Python 的垃圾回收机制回收)
"""
del con
来源:https://blog.csdn.net/weixin_42250835/article/details/127045682


猜你喜欢
- asp三天学好ADO对象之第二天 今天来说一下Recordset对象的一些方法。1、AddNew 方法创建可更新 Recordset 对象的
- 使用tensorflow过程中,训练结束后我们需要用到模型文件。有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练。这时候我
- 本文实例为大家分享了php实现ajax图片上传的具体代码,供大家参考,具体内容如下html页面代码<!DOCTYPE html>
- python连接clickhouse数据库在Python中获取系统信息的一个好办法是使用psutil这个第三方模块。顾名思义,psutil
- 叨叨几句哈喽兄弟们,今天实现一下人脸识别。先问大家一个问题什么是百度Aip模块?百度AI平台提供了很多的API接口供开发者快速的调用运用在项
- drop_duplicates为我们提供了数据去重的方法,那怎么得到哪些数据有重复呢?实现步骤:1、采用drop_duplicates对数据
- #mysql -uroot -p输入密码mysql> show full processlist;
- 在开发软件的过程中,我们经常会碰到需要在指定目录下生成文件和删除文件的操作,下面就演示一下怎样用python进行之类操作。生成文件impor
- 区别CHAR与VARCHAR类型类似,但它们保存和检索的方式不同。CHAR有固定的长度,而VARCHAR属于可变长的字符类型。它们最大长度和
- 原生上传图片方式#新建工程 python manage.py startapp test30#修改 settings.pyINSTALLED
- 1、为什么要设置headers?在请求网页爬取的时候,输出的text信息中会出现抱歉,无法访问等字眼,这就是禁止爬取,需要通过反爬机制去解决
- 本文详细讲述了CI框架整合smarty步骤。分享给大家供大家参考,具体如下:Ci结合smarty的配置步骤:1. 第一步配置ci和下载sma
- 生成一个2000*5的表格,每个单元格的内容是行号+逗号+列号 方法一:使用createElement生成表格,使用insertRow和in
- 本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalS
- 1、实例方法/对象方法实例方法或者叫对象方法,指的是我们在类中定义的普通方法。只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一
- 例如数据 列Namename abcd最后的结果a*b*c*d*declare @test table( namevarchar(10))&
- 程序员鼓励师插件挺火的,我也来凑凑热闹推荐软件:VSCode Rainbow Far(VSCode彩虹屁扩展)v1.2.2 最新版只需要下载
- 最近在使用tensorflow进行网络训练的时候,需要提取出别人训练好的卷积核的部分层的数据。由于tensorflow中的tensor和py
- 框架thinkphp 版本:3.2.3 内容:数据库操作1. 多表查找一条数据M('a表')->join("
- 大家都见过某网页中的恶意广告,你关闭了又出来了!为何,JS来告诉你HTML<body> <h3 class=&