Python利用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集合内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python redis连接 有序集合去重的代码

    python redis连接 有序集合去重的代码如下所述: # -*- coding: utf-8 -*- import redis from constant import redis_ip, redis_db, redis_pw, redis_zset_name pool = redis.ConnectionPool(host=redis_ip, db=redis_db, password=redis_pw) # pool = redis.ConnectionPool(db=6, passw

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

    目录 集合数据类型的添加操作 集合数据类型的删除元素操作 获取集合数据类型的所有元素 有序集合数据类型的添加操作 有序集合数据类型的分数值增加操作 有序集合数据类型的排序指令(降序) 集合与有序集合相关指令演示小案例 集合数据类型的添加操作 在 “redis-py” 中也是通过 “sadd” 这条指令去创建添加集合数据类型的,这一点与在 “redis” 中是一致的.示例如下: con.sadd("JobNumber", 1001, 1002, 1003) # 这里的 con 就是创建的

  • Python利用redis-py实现哈希数据类型的常用指令操作

    目录 哈希数据类型的创建与数据的添加 - hmset 哈希数据类型已存在的记录添加记录 - hset 哈希数据类型已存在的记录删除记录 - hdel 哈希数据类型判断某记录是否存在 - hexists 获取哈希数据类型的所有元素 - hgetall 哈希数据类型相关指令演示小案例 哈希数据类型的创建与数据的添加 - hmset 利用 “redis-py” 模块实现 “哈希数据类型” 的创建及哈希表数据的添加. con.hmset("userinfo", {"name"

  • python利用pd.cut()和pd.qcut()对数据进行分箱操作

    目录 1.cut()可以实现类似于对成绩进行优良统计的功能,来看代码示例. 2.qcut()可以生成指定的箱子数,然后使每个箱子都具有相同数量的数据 1.cut()可以实现类似于对成绩进行优良统计的功能,来看代码示例. 假如我们有一组学生成绩,我们需要将这些成绩分为不及格(0-59).及格(60-70).良(71-85).优(86-100)这几组.这时候可以用到cut() import numpy as np import pandas as pd # 我们先给 scores传入30个从0到10

  • Redis有序集合类型的操作_动力节点Java学院整理

    今天我们说一下Redis中最后一个数据类型 "有序集合类型",回首之前学过的几个数据结构,不知道你会不会由衷感叹,开源的世界真好,写这些代码的好心人真的要一生平安哈,不管我们想没想的到的东西,在这个世界上都已经存在着,曾几何时,我们想把所有数据按照数据结构模式组成后灌输到内存中,然而为了达到内存共享的方式,不得不将这块内存单独部署,同时还要考虑怎么序列化,何时序列互的问题,烦心事太多太多...后来才知道有redis这么个玩意,能把高级的,低级的数据结构单独包装到一个共享内存中(Redi

  • Redis有序集合类型的常用命令小结

    一.有序集合类型 有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序而已.Redis中的有序集合类型,实际上是在集合类型上,为每个元素都关联一个分数,有序实际上说的是分数有序,我们根据分数的范围获取集合及其他操作.集合的元素依然是不能够相同的,但是分数可以相同. 下面列举有序集合和类型和列表类型的相似处: ①两者都是有序的(废话!) ②两者都可以获得某一范围的元素 下面列举区别: ①列表是链表实现的,靠近两边的数据读取极快,而元素过多后获取中间元素的速度则会很慢:有序集合

  • Redis中有序集合的内部实现方式的详细介绍

    目录 有序集合的内部实现 以压缩列表作为内部实现 以跳跃表作为内部实现 内部实现的转换 总结 面试官:Redis中基本的数据类型有哪些? 我:Redis的基本数据类型有:字符串(string).哈希(hash).列表(list).集合(set).有序集合(zset). 面试官:有序集合的内部实现方式是什么? 我还沉浸在上一个问题的沾沾自喜中,顿时表情凝固了,手心开始冒出冷汗.“这个..没有太深入了解”,我支支吾吾的说到. 面试官:回去等消息吧. 这句话说的干净利落,然后就没有然后了.失败是成功的

  • Python使用Redis实现作业调度系统(超简单)

    概述 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用于持久性. 相比许多键值数据存储,Redis拥有一套较为丰富的数据类型. Redis可以将数据复制到任意数量的从服务器. Redis 优势 异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录. 支持丰富的数据类型:Redis支持最大多数开发人员已经知道像列表,集

  • Python访问Redis的详细操作

    1.连接 测试连接是否成功: import redis r = redis.Redis(host='192.168.136.102', port=6379, db=0,decode_responses=True) r.set('foo', 'bar') print(r.get('foo')) del r redis 取出的结果默认是字节,我们可以设定 decode_responses=True 改成字符串. redis 提供两个类 Redis 和 StrictRedis, StrictRedis

  • 利用Redis的有序集合实现排行榜功能实例代码

    前言 游戏中存在各种各样的排行榜,比如玩家的等级排名.分数排名等.玩家在排行榜中的名次是其实力的象征,位于榜单前列的玩家在虚拟世界中拥有无尚荣耀,所以名次也就成了核心玩家的追求目标. 一个典型的游戏排行榜包括以下常见功能: 能够记录每个玩家的分数: 能够对玩家的分数进行更新: 能够查询每个玩家的分数和名次: 能够按名次查询排名前N名的玩家: 能够查询排在指定玩家前后M名的玩家. 更进一步,上面的操作都需要在短时间内实时完成,这样才能最大程度发挥排行榜的效用. 由于一个玩家名次上升x位将会引起x+

随机推荐