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

 更新时间:2022年09月26日 14:21:18   作者:不渴望力量的哈士奇  
这篇文章我们将来学习 redis-py 这个模块针对 “集合” 与 "有序集合"的一些常用指令操作,文中的示例代码讲解详细,需要的可以参考一下

集合数据类型的添加操作

在 “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实现局部图像放大

    python实现局部图像放大

    这篇文章主要介绍了python实现局部图像放大,画中画形式展示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • jupyter notebook内核配置的图文教程

    jupyter notebook内核配置的图文教程

    Jupyter Notebook是基于网页的用于交互计算的应用程序,下面这篇文章主要给大家介绍了关于jupyter notebook内核配置的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • 聊聊Python中end=和sep=的区别

    聊聊Python中end=和sep=的区别

    这篇文章主要介绍了Python中end=和sep=的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Django框架多表查询实例分析

    Django框架多表查询实例分析

    这篇文章主要介绍了Django框架多表查询,结合实例形式分析了Django框架实现多表查询的外键、关联、前向查询、反向查询等相关操作技巧与注意事项,需要的朋友可以参考下
    2018-07-07
  • python scrapy爬虫代码及填坑

    python scrapy爬虫代码及填坑

    这篇文章主要介绍了python scrapy爬虫代码及填坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python实现简单倒计时功能

    python实现简单倒计时功能

    这篇文章主要为大家详细介绍了python实现简单倒计时功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • python3 pillow模块实现简单验证码

    python3 pillow模块实现简单验证码

    这篇文章主要为大家详细介绍了python3 pillow模块实现简单验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Python实现图像压缩和图像处理详解

    Python实现图像压缩和图像处理详解

    随着现在短视频类越来越火,随之而来的就是大量的视频图像的处理。这篇文章主要为大家介绍了Python如何一键实现图像压缩和图像处理,希望对你们有所帮助
    2022-07-07
  • Python使用pickle模块存储数据报错解决示例代码

    Python使用pickle模块存储数据报错解决示例代码

    这篇文章主要介绍了Python使用pickle模块存储数据报错解决示例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python基于欧拉角绘制一个立方体

    Python基于欧拉角绘制一个立方体

    这篇文章主要为大家详细介绍了Python如何基于欧拉角实现绘制一个立方体,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-02-02

最新评论