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

Python利用redis-py实现集合与有序集合的常用指令操作

Python利用redis-py实现集合与有序集合的常用指令操作

Python利用redis-py实现集合与有序集合的常用指令操作

来源:https://blog.csdn.net/weixin_42250835/article/details/127045682

标签:Python,redis-py,集合
0
投稿

猜你喜欢

  • 服务器不支持 MySql 数据库的解决方法

    2024-01-15 11:44:57
  • SQL Server2019安装后出现连接失败的解决方法

    2024-01-23 05:16:24
  • js canvas实现随机粒子特效

    2024-06-05 09:10:50
  • 基于python traceback实现异常的获取与处理

    2022-04-05 09:59:32
  • python如何获取apk的packagename和activity

    2023-07-11 20:50:19
  • Python 实现把列表中的偶数变成他的平方

    2023-12-13 02:45:18
  • 详解Python3定时器任务代码

    2023-10-15 14:50:26
  • YOLOv5车牌识别实战教程(二)理论基础

    2021-11-08 09:16:06
  • Python zip()函数用法实例分析

    2022-10-28 21:39:53
  • 提升设计品质的8个布局方案[译]

    2010-03-18 16:06:00
  • 浅谈Python在pycharm中的调试(debug)

    2023-05-04 15:33:20
  • 关于Vue单页面骨架屏实践记录

    2024-05-09 15:14:23
  • PHP实现上传文件并存进数据库的方法

    2023-07-03 21:35:14
  • Python中列表的常用操作详解

    2022-07-17 10:16:42
  • 使用pt-kill根据一定的规则来kill连接的方法

    2024-01-26 01:18:37
  • Keras之fit_generator与train_on_batch用法

    2021-07-10 18:19:31
  • 空间session失效过快的解决办法

    2010-09-15 10:01:00
  • 二级域名的解析指向ASP源码

    2007-10-19 19:13:00
  • 深入浅析Python数据分析的过程记录

    2022-05-04 02:56:27
  • Python基于纹理背景和聚类算法实现图像分割详解

    2023-11-15 20:05:46
  • asp之家 网络编程 m.aspxhome.com