Redis(四) - 使用Python操作Redis详解

发布于:2025-05-24 ⋅ 阅读:(21) ⋅ 点赞:(0)


前言

本文是基于 Python 操作 Redis 数据库的实战指南,旨在通过分步教程与代码示例,帮助开发者掌握 Redis 常见数据类型(字符串、列表、集合、哈希表、有序集合)的操作方法。内容覆盖开发环境搭建、库安装、项目结构创建及核心功能代码实现,适合 Python 初学者及 Redis 入门开发者参考。


一、下载Python插件

打开设置菜单:首先,点击左上角的“文件”菜单,然后选择“设置”选项。这将打开一个新窗口,显示各种设置选项。
进入插件管理:在设置窗口左侧的导航栏中,找到并点击“插件”选项。这将带你进入插件管理页面。
搜索Python插件:在插件管理页面顶部的搜索框中输入“python”,然后按回车键进行搜索。这将列出与Python相关的所有插件。
选择Python插件:从搜索结果中找到名为“Python”的插件,并点击它。确保该插件旁边的复选框被勾选,表示已启用。
应用更改:完成上述步骤后,点击右下角的“应用(A)”按钮,然后点击“确定”按钮以保存更改并关闭设置窗口。

具体步骤如下图所示:

在这里插入图片描述


二、创建项目

项目创建是 Python 开发的起始点,规范且合理地创建项目有助于组织代码结构、管理项目资源。在开发与 Redis 交互的 Python 项目时,明确项目名称、路径以及选择合适的环境类型,如 Virtualenv 虚拟环境,能有效隔离项目依赖,避免不同项目间的依赖冲突,为项目开发营造稳定的运行环境。下面详细介绍创建 Python 项目的具体流程。

点击“文件”菜单–>选择“新建(N)”–>点击“项目…”–>选择“Python”项目类型–>输入项目名称和路径–>选择环境类型为“Virtualenv”–>指定虚拟环境路径–>选择基础解释器版本–>点击“创建©”按钮。

具体步骤如下图所示:

在这里插入图片描述


三、安装 redis 库

Redis 库是 Python 与 Redis 数据库交互的桥梁。通过终端执行 pip install redis 命令(推荐使用阿里云镜像源加速下载),可快速安装官方提供的 Redis 客户端库。安装完成后,需验证库是否导入成功(如在 Python 中执行 import redis 无报错),确保后续代码能够调用 Redis 相关接口。

打开终端,执行如下命令安装redis库。

pip install redis -i https://mirrors.aliyun.com/pypi/simple/

具体步骤如下图所示:

在这里插入图片描述


四、新建python软件包

在 Python 项目中,软件包用于组织相关的模块,有助于构建清晰的代码结构,提高代码的可维护性与复用性。当项目涉及复杂的功能模块时,合理创建软件包能够更好地管理代码逻辑。以下介绍在项目中新建 Python 软件包的操作方法。

在项目视图中找到并点击项目名称–>右键点击项目名称–>选择“新建(N)”–>选择“Python 软件包”–>输入软件包名称–>点击“确定”按钮。

具体步骤如下图所示:

在这里插入图片描述

创建完成如下图所示:

在这里插入图片描述


五、键操作

键操作是 Redis 数据管理的基础,涉及键的创建、查询、修改与删除。核心方法包括:

  • SET/MSET:设置单个或多个键值对;
  • KEYS:按模式匹配查询键(如 k* 匹配以 k 开头的键);
  • EXPIRE/TTL:设置键的生存时间及查询剩余存活时间;
  • RENAME:重命名键;
  • DELETE:删除单个或多个键。

通过这些操作,可高效管理 Redis 中的数据生命周期。

def key_operation():
    print("===========键操作===========")
    # 示例:给school键设置值为dy。
    set_result = r.set("school", "dy")
    print(set_result)
    print("===============")
    # 示例:给k1键设置值为v1,k2键设置值为v2,k3键设置值为v3。
    set_result1 = r.mset({"k1": "v1", "k2": "v2", "k3": "v3"})
    print(set_result1)
    print("===============")
    # 示例1:查看所有键。
    keys = r.keys("*")
    for key in keys:
        print(key.decode())
    print("===============")
    # 示例2:查看所有以k开头的键。
    keys1 = r.keys("k*")
    for key in keys1:
        print(key.decode())
    print("===============")
    # 示例:查看scool键的值。
    school = r.get("school")
    print(school.decode() if school else None)
    print("===============")
    # 示例:查看k1、k2、k3键的值。
    mget = r.mget("k1", "k2", "k3")
    for s in mget:
        print(s.decode() if s else None)
    print("===============")
    # 示例:查看k1键的值的序列化版本。
    k1s = r.dump("k1")
    print(k1s)
    print("===============")
    # 示例1:查看school键是否存在。
    exists = r.exists("school")
    print(exists)
    # print(bool(exists))
    print("===============")
    # 示例2:查看k1、k2、k3、k4、k5键是否存在。
    exists1 = r.exists("k1", "k2", "k3", "k4", "k5")
    print(exists1)
    print("===============")
    # 示例:查看school键的值的类型。
    type_ = r.type("school").decode()
    print(type_)
    print("===============")
    # 示例:把school键重命名为new_school键。
    rename = r.rename("school", "new_school")
    print(rename)
    print("===============")
    # 示例:把k3键的生存时间设置为600秒。
    expire = r.expire("k3", 600)
    print(expire)
    print("===============")
    # 示例:查看k3键的剩余存活时间。
    ttl = r.ttl("k3")
    print(ttl)
    print("===============")
    # 示例:删除k3键的存活时间。
    persist = r.persist("k3")
    print(persist)
    print("===============")
    # 示例1:删除new_school键。
    del_ = r.delete("new_school")
    print(del_)
    print("===============")
    # 示例2:删除k1、k2、k3键。
    del1 = r.delete("k1", "k2", "k3")
    print(del1)
    print("===============")

六、字符串操作

字符串是 Redis 最基础的数据类型,支持原子性操作。核心方法包括:

  • GET/MGET:获取单个或多个字符串值;
  • GETSET:先获取旧值再设置新值;
  • STRLEN:获取字符串长度;
  • SETRANGE:按索引替换字符串内容;
  • APPEND:向字符串末尾追加内容。

这些操作适用于缓存简单数据(如用户信息、配置项)场景。

def string_operation():
    print("===========字符串操作===========")
    # 示例:给字符串键str1设置值为value1。
    set_result = r.set("str1", "value1")
    print(set_result)
    print("===============")
    # 示例:给字符串键str2、str3、str4分别设置值为value2、value3、value4。
    mset_result = r.mset({"str2": "value2", "str3": "value3", "str4": "value4"})
    print(mset_result)
    print("===============")
    # 示例:获取字符串键str1的值。
    str1 = r.get("str1")
    print(str1.decode() if str1 else None)
    print("===============")
    # 示例:获取字符串键str2、str3、str4的值。
    mget = r.mget("str2", "str3", "str4")
    for s in mget:
        print(s.decode() if s else None)
    print("===============")
    # 示例:获取字符串键str1的旧值,并设置新值为new_value1。
    get_set = r.getset("str1", "new_value1")
    print(get_set.decode() if get_set else None)
    # 查看设置后的新值。
    str11 = r.get("str1")
    print(str11.decode() if str11 else None)
    print("===============")
    # 示例:获取字符串键str1的值的长度。
    strlen = r.strlen("str1")
    print(strlen)
    print("===============")
    # 示例:获取字符串键str1的索引0-5的值的内容。
    getrange = r.getrange("str1", 0, 5)
    print(getrange.decode() if getrange else None)
    print("===============")
    # 示例:把字符串键str1从索引2开始的后面三个字母的内容替换为aaa。
    setrange = r.setrange("str1", 2, "aaa")
    print(setrange)
    # 查看设置后的新值。
    str12 = r.get("str1")
    print(str12.decode() if str12 else None)
    print("===============")
    # 示例:向字符串键str1的结尾追加内容bbb。
    append = r.append("str1", "bbb")
    print(append)
    # 查看设置后的新值。
    str13 = r.get("str1")
    print(str13.decode() if str13 else None)

七、列表操作

列表(List)是 Redis 中有序、可重复的链表结构,支持两端插入与删除。核心方法包括:

  • LPUSH/RPUSH:左 / 右端插入元素;
  • LRANGE:按索引范围获取列表元素(如 0 -1 表示所有元素);
  • LPOP/RPOP:左 / 右端弹出并删除元素;
  • LREM:按条件删除元素(如删除指定数量或方向的元素)。

列表适用于队列、栈、历史记录等有序数据场景。

def list_operation():
    print("===========列表操作===========")
    # 示例:在列表右端向列表color中添加多个值。
    rpush = r.rpush("color", "blue", "green", "purple", "red", "white")
    print(rpush)
    print("===============")
    # 示例:在列表左端向列表color中添加多个值。
    lpush = r.lpush("color", "blue2", "green2", "purple2", "red2", "white2")
    print(lpush)
    print("===============")
    # 示例1:获取列表color中索引0-5的元素。
    color = r.lrange("color", 0, 5)
    for s in color:
        print(s.decode())
    print("===============")
    # 示例2:获取列表color中的所有元素。
    color1 = r.lrange("color", 0, -1)
    for s in color1:
        print(s.decode())
    print("===============")
    # 示例:获取列表color中索引为2的元素。
    color2 = r.lindex("color", 2)
    print(color2.decode() if color2 else None)
    print("===============")
    # 示例:移除并获取列表color中的最后一个(最右端)元素。
    rpop = r.rpop("color")
    print(rpop.decode() if rpop else None)
    print("===============")
    # 示例:移除并获取列表color中的第一个(最左端)元素。
    lpop = r.lpop("color")
    print(lpop.decode() if lpop else None)
    print("===============")
    # 示例:获取列表color的长度。
    llen = r.llen("color")
    print(llen)
    print("===============")
    # 示例1:从列表开头开始搜索移除列表color中1个red元素。
    lrem = r.lrem("color", 1, "red")
    print(lrem)
    print("===============")
    # 示例2:从列表结尾开始搜索移除列表color中3个blue元素。
    lrem1 = r.lrem("color", -3, "blue")
    print(lrem1)
    print("===============")
    # 示例3:移除列表color中所有blue2元素。
    lrem2 = r.lrem("color", 0, "blue2")
    print(lrem2)
    print("===============")

八、集合操作

集合(Set)是 Redis 中无序、唯一的元素集合,支持交集、并集、差集运算。关键操作包括:

  • SADD:添加成员(自动去重);
  • SMEMBERS:获取所有成员;
  • SISMEMBER:判断成员是否存在;
  • SMOVE:移动成员至其他集合。

集合常用于标签管理、用户去重、交集查询(如共同好友)等场景。

def set_operation():
    print("===========集合操作===========")
    # 示例:给集合键set1添加多个成员。
    sadd = r.sadd("set1", "mem1", "mem2", "mem3")
    print(sadd)
    print("===============")
    # 示例:查看集合键set1中成员的数量。
    scard = r.scard("set1")
    print(scard)
    print("===============")
    # 示例:查看集合键set1中的所有成员。
    set1 = r.smembers("set1")
    for s in set1:
        print(s.decode())
    print("===============")
    # 示例:检查成员mem1是否在集合set1中。
    sismember = r.sismember("set1", "mem1")
    print(sismember)
    print("===============")
    # 示例:移除集合set1中成员mem3。
    srem = r.srem("set1", "mem3")
    print(srem)
    print("===============")
    # 示例:把集合set1中成员mem2移动到集合set2中。
    smove = r.smove("set1", "set2", "mem2")
    print(smove)
    print("===============")

九、哈希表操作

哈希表(Hash)用于存储键值对的集合,适合存储结构化数据(如用户详情)。核心方法包括:

  • HSET:设置单个字段值或批量设置(通过 mapping 参数);
  • HGET/HMGET:获取单个或多个字段值;
  • HGETALL:获取所有字段和值;
  • HDEL:删除指定字段。

哈希表可减少键的数量,提升数据读写效率,适用于存储对象属性场景。

def hash_operation():
    print("===========哈希表操作===========")
    # 示例:给哈希表student添加一个学生信息。
    hset = r.hset("student:1", "name", "zhangsan")
    print(hset)
    hset1 = r.hset("student:1", "age", "19")
    print(hset1)
    hset2 = r.hset("student:1", "address", "yunnan")
    print(hset2)
    print("===============")
    # 示例:给哈希表student添加一个学生信息。
    # 修复:使用 hset 替代 hmset,传入映射字典
    hmset = r.hset("student:2", mapping={"name": "lisi", "age": "20", "address": "guizhou"})
    print(hmset)
    print("===============")
    # 示例:获取hash键student:2中name字段的值。
    hget = r.hget("student:2", "name")
    print(hget.decode() if hget else None)
    print("===============")
    # 示例:获取hash键student:2中name、age和address字段的值。
    hget1 = r.hmget("student:2", ["name", "age", "address"])
    for s in hget1:
        print(s.decode() if s else None)
    print("===============")
    # 示例:获取hash键student:2中的所有字段和值。
    student2 = r.hgetall("student:2")
    for key, value in student2.items():
        print(f"{key.decode()}: {value.decode()}")
    print("===============")
    # 示例:获取hash键student:2中的所有字段。
    hkeys = r.hkeys("student:2")
    for s in hkeys:
        print(s.decode())
    print("===============")
    # 示例:获取hash键student:2中的所有值。
    hvals = r.hvals("student:2")
    for s in hvals:
        print(s.decode())
    print("===============")
    # 示例:删除hash键student:2中的age和address字段。
    hdel = r.hdel("student:2", "age", "address")
    print(hdel)
    print("===============")

十、有序集合操作

有序集合(Sorted Set)通过分数(Score)实现元素的有序排列,支持按分数或索引范围查询。核心方法包括:

  • ZADD:添加成员与分数;
  • ZCOUNT:统计指定分数范围内的成员数量;
  • ZRANGE:按索引范围获取成员(默认按分数升序);
  • ZSCORE:获取成员的分数。

有序集合适用于排行榜、实时数据排序(如点赞数、访问量)等场景。

def order_set_operation():
    print("===========有序集合操作===========")
    # 示例:给有序集合salary添加多个分数和成员。
    zadd = r.zadd("salary", {"zhangsan": 5000, "lisi": 4500, "wangwu": 6000})
    print(zadd)
    print("===============")
    # 示例:获取有序集合salary中的成员数量。
    zcard = r.zcard("salary")
    print(zcard)
    print("===============")
    # 示例:计算有序集合中分数在5000-6500之间的成员数量。
    zcount = r.zcount("salary", 5000, 6500)
    print(zcount)
    print("===============")
    # 示例:根据索引范围获取有序集合salary中的成员。
    salary = r.zrange("salary", 0, 1)
    for s in salary:
        print(s.decode())
    print("===============")
    # 示例:获取有序集合salary中成员wangwu的分数。
    zscore = r.zscore("salary", "wangwu")
    print(zscore)
    print("===============")
    # 示例:移除有序集合salary中成员wangwu。
    zrem = r.zrem("salary", "wangwu")
    print(zrem)
    print("===============")

十一、完整代码

本章提供完整的 Python 代码示例,整合前文各模块功能。代码通过 redis.Redis 类连接本地 Redis 服务(默认端口 6379,数据库 1),包含以下核心逻辑:

  • flush_db():清空数据库,确保测试环境干净;
  • 各数据类型操作函数(如 key_operation()、string_operation()):封装具体功能逻辑;
  • __main__ 入口:按顺序调用各操作函数,实现完整的 Redis 交互流程。
    运行前需确保 Redis 服务已启动,且代码中的连接参数与实际环境一致。

1. 完整代码

import redis

# 连接到本地 Redis 服务
r = redis.Redis(host='127.0.0.1', port=6379, db=1)


def flush_db():
    # 清空数据库
    r.flushdb()


def key_operation():
    print("===========键操作===========")
    # 示例:给school键设置值为dy。
    set_result = r.set("school", "dy")
    print(set_result)
    print("===============")
    # 示例:给k1键设置值为v1,k2键设置值为v2,k3键设置值为v3。
    set_result1 = r.mset({"k1": "v1", "k2": "v2", "k3": "v3"})
    print(set_result1)
    print("===============")
    # 示例1:查看所有键。
    keys = r.keys("*")
    for key in keys:
        print(key.decode())
    print("===============")
    # 示例2:查看所有以k开头的键。
    keys1 = r.keys("k*")
    for key in keys1:
        print(key.decode())
    print("===============")
    # 示例:查看scool键的值。
    school = r.get("school")
    print(school.decode() if school else None)
    print("===============")
    # 示例:查看k1、k2、k3键的值。
    mget = r.mget("k1", "k2", "k3")
    for s in mget:
        print(s.decode() if s else None)
    print("===============")
    # 示例:查看k1键的值的序列化版本。
    k1s = r.dump("k1")
    print(k1s)
    print("===============")
    # 示例1:查看school键是否存在。
    exists = r.exists("school")
    print(exists)
    # print(bool(exists))
    print("===============")
    # 示例2:查看k1、k2、k3、k4、k5键是否存在。
    exists1 = r.exists("k1", "k2", "k3", "k4", "k5")
    print(exists1)
    print("===============")
    # 示例:查看school键的值的类型。
    type_ = r.type("school").decode()
    print(type_)
    print("===============")
    # 示例:把school键重命名为new_school键。
    rename = r.rename("school", "new_school")
    print(rename)
    print("===============")
    # 示例:把k3键的生存时间设置为600秒。
    expire = r.expire("k3", 600)
    print(expire)
    print("===============")
    # 示例:查看k3键的剩余存活时间。
    ttl = r.ttl("k3")
    print(ttl)
    print("===============")
    # 示例:删除k3键的存活时间。
    persist = r.persist("k3")
    print(persist)
    print("===============")
    # 示例1:删除new_school键。
    del_ = r.delete("new_school")
    print(del_)
    print("===============")
    # 示例2:删除k1、k2、k3键。
    del1 = r.delete("k1", "k2", "k3")
    print(del1)
    print("===============")


def string_operation():
    print("===========字符串操作===========")
    # 示例:给字符串键str1设置值为value1。
    set_result = r.set("str1", "value1")
    print(set_result)
    print("===============")
    # 示例:给字符串键str2、str3、str4分别设置值为value2、value3、value4。
    mset_result = r.mset({"str2": "value2", "str3": "value3", "str4": "value4"})
    print(mset_result)
    print("===============")
    # 示例:获取字符串键str1的值。
    str1 = r.get("str1")
    print(str1.decode() if str1 else None)
    print("===============")
    # 示例:获取字符串键str2、str3、str4的值。
    mget = r.mget("str2", "str3", "str4")
    for s in mget:
        print(s.decode() if s else None)
    print("===============")
    # 示例:获取字符串键str1的旧值,并设置新值为new_value1。
    get_set = r.getset("str1", "new_value1")
    print(get_set.decode() if get_set else None)
    # 查看设置后的新值。
    str11 = r.get("str1")
    print(str11.decode() if str11 else None)
    print("===============")
    # 示例:获取字符串键str1的值的长度。
    strlen = r.strlen("str1")
    print(strlen)
    print("===============")
    # 示例:获取字符串键str1的索引0-5的值的内容。
    getrange = r.getrange("str1", 0, 5)
    print(getrange.decode() if getrange else None)
    print("===============")
    # 示例:把字符串键str1从索引2开始的后面三个字母的内容替换为aaa。
    setrange = r.setrange("str1", 2, "aaa")
    print(setrange)
    # 查看设置后的新值。
    str12 = r.get("str1")
    print(str12.decode() if str12 else None)
    print("===============")
    # 示例:向字符串键str1的结尾追加内容bbb。
    append = r.append("str1", "bbb")
    print(append)
    # 查看设置后的新值。
    str13 = r.get("str1")
    print(str13.decode() if str13 else None)


def list_operation():
    print("===========列表操作===========")
    # 示例:在列表右端向列表color中添加多个值。
    rpush = r.rpush("color", "blue", "green", "purple", "red", "white")
    print(rpush)
    print("===============")
    # 示例:在列表左端向列表color中添加多个值。
    lpush = r.lpush("color", "blue2", "green2", "purple2", "red2", "white2")
    print(lpush)
    print("===============")
    # 示例1:获取列表color中索引0-5的元素。
    color = r.lrange("color", 0, 5)
    for s in color:
        print(s.decode())
    print("===============")
    # 示例2:获取列表color中的所有元素。
    color1 = r.lrange("color", 0, -1)
    for s in color1:
        print(s.decode())
    print("===============")
    # 示例:获取列表color中索引为2的元素。
    color2 = r.lindex("color", 2)
    print(color2.decode() if color2 else None)
    print("===============")
    # 示例:移除并获取列表color中的最后一个(最右端)元素。
    rpop = r.rpop("color")
    print(rpop.decode() if rpop else None)
    print("===============")
    # 示例:移除并获取列表color中的第一个(最左端)元素。
    lpop = r.lpop("color")
    print(lpop.decode() if lpop else None)
    print("===============")
    # 示例:获取列表color的长度。
    llen = r.llen("color")
    print(llen)
    print("===============")
    # 示例1:从列表开头开始搜索移除列表color中1个red元素。
    lrem = r.lrem("color", 1, "red")
    print(lrem)
    print("===============")
    # 示例2:从列表结尾开始搜索移除列表color中3个blue元素。
    lrem1 = r.lrem("color", -3, "blue")
    print(lrem1)
    print("===============")
    # 示例3:移除列表color中所有blue2元素。
    lrem2 = r.lrem("color", 0, "blue2")
    print(lrem2)
    print("===============")


def set_operation():
    print("===========集合操作===========")
    # 示例:给集合键set1添加多个成员。
    sadd = r.sadd("set1", "mem1", "mem2", "mem3")
    print(sadd)
    print("===============")
    # 示例:查看集合键set1中成员的数量。
    scard = r.scard("set1")
    print(scard)
    print("===============")
    # 示例:查看集合键set1中的所有成员。
    set1 = r.smembers("set1")
    for s in set1:
        print(s.decode())
    print("===============")
    # 示例:检查成员mem1是否在集合set1中。
    sismember = r.sismember("set1", "mem1")
    print(sismember)
    print("===============")
    # 示例:移除集合set1中成员mem3。
    srem = r.srem("set1", "mem3")
    print(srem)
    print("===============")
    # 示例:把集合set1中成员mem2移动到集合set2中。
    smove = r.smove("set1", "set2", "mem2")
    print(smove)
    print("===============")


def hash_operation():
    print("===========哈希表操作===========")
    # 示例:给哈希表student添加一个学生信息。
    hset = r.hset("student:1", "name", "zhangsan")
    print(hset)
    hset1 = r.hset("student:1", "age", "19")
    print(hset1)
    hset2 = r.hset("student:1", "address", "yunnan")
    print(hset2)
    print("===============")
    # 示例:给哈希表student添加一个学生信息。
    # 修复:使用 hset 替代 hmset,传入映射字典
    hmset = r.hset("student:2", mapping={"name": "lisi", "age": "20", "address": "guizhou"})
    print(hmset)
    print("===============")
    # 示例:获取hash键student:2中name字段的值。
    hget = r.hget("student:2", "name")
    print(hget.decode() if hget else None)
    print("===============")
    # 示例:获取hash键student:2中name、age和address字段的值。
    hget1 = r.hmget("student:2", ["name", "age", "address"])
    for s in hget1:
        print(s.decode() if s else None)
    print("===============")
    # 示例:获取hash键student:2中的所有字段和值。
    student2 = r.hgetall("student:2")
    for key, value in student2.items():
        print(f"{key.decode()}: {value.decode()}")
    print("===============")
    # 示例:获取hash键student:2中的所有字段。
    hkeys = r.hkeys("student:2")
    for s in hkeys:
        print(s.decode())
    print("===============")
    # 示例:获取hash键student:2中的所有值。
    hvals = r.hvals("student:2")
    for s in hvals:
        print(s.decode())
    print("===============")
    # 示例:删除hash键student:2中的age和address字段。
    hdel = r.hdel("student:2", "age", "address")
    print(hdel)
    print("===============")


def order_set_operation():
    print("===========有序集合操作===========")
    # 示例:给有序集合salary添加多个分数和成员。
    zadd = r.zadd("salary", {"zhangsan": 5000, "lisi": 4500, "wangwu": 6000})
    print(zadd)
    print("===============")
    # 示例:获取有序集合salary中的成员数量。
    zcard = r.zcard("salary")
    print(zcard)
    print("===============")
    # 示例:计算有序集合中分数在5000-6500之间的成员数量。
    zcount = r.zcount("salary", 5000, 6500)
    print(zcount)
    print("===============")
    # 示例:根据索引范围获取有序集合salary中的成员。
    salary = r.zrange("salary", 0, 1)
    for s in salary:
        print(s.decode())
    print("===============")
    # 示例:获取有序集合salary中成员wangwu的分数。
    zscore = r.zscore("salary", "wangwu")
    print(zscore)
    print("===============")
    # 示例:移除有序集合salary中成员wangwu。
    zrem = r.zrem("salary", "wangwu")
    print(zrem)
    print("===============")


if __name__ == "__main__":
    flush_db()
    key_operation()
    string_operation()
    list_operation()
    set_operation()
    hash_operation()
    order_set_operation()

2. 项目下载

下载地址:https://download.csdn.net/download/zcs2312852665/90889723


网站公告

今日签到

点亮在社区的每一天
去签到