前言
上一期我们详细讲解了 Redis 的 Client API 对于量化工作的重要性,也带大家走完了 Python 版 redis-py 客户端的安装与基础使用流程。本期我们正式深入核心,系统拆解 redis-py 的高级用法与实战技巧,手把手吃透这个高频使用的 Redis 客户端库。
一、前置环境准备
在开始实操之前,先把运行环境配置到位,确保后续所有代码都能正常跑通。
1.1 运行依赖要求
redis-py 的正常运行需要满足两个基础条件:
- 存在一个已启动、可正常访问的 Redis 服务实例
- 本地 Python 环境版本不低于 3.7
1.2 redis-py 安装
直接使用 Python 官方包管理工具 pip 即可一键安装,执行以下命令:
pip install redis
二、两种快速连接 Redis 的方式
安装完成后,我们可以根据 Redis 的部署场景,选择对应的连接方式,这里给大家介绍两种最常用的写法。
2.1 本地默认连接
如果你的 Redis 服务部署在本机,且使用默认配置(地址 localhost、端口 6379),直接初始化 Redis 对象即可:
import redis
r = redis.Redis()
r.ping()
执行 r.ping() 返回 True,就代表服务连接成功。
2.2 远程 / 自定义配置连接
如果 Redis 是远程部署,或者修改了默认端口、地址,就需要在连接时手动指定参数。 例如服务地址为 foo.bar.com,运行端口为 12345,连接写法如下:
import redis
r = redis.Redis(host='foo.bar.com', port=12345)
r.ping()
连接成功后,我们就可以通过这个连接对象,执行各类 Redis 数据操作命令了。
三、redis-py 核心命令详解
redis-py 对 Redis 绝大多数原生命令都做了封装,覆盖常规数据操作、哨兵高可用架构、Redis 集群管理等全场景。其中最核心的就是 redis.commands.core.CoreCommands 类,它承载了大部分常用操作的实现逻辑。
接下来我们以最常用的 String(字符串)类型为例,拆解核心操作函数的具体用法。
3.1 基础读写:set /get 命令
这是最基础的键值对操作,完全对应 Redis 原生的 SET 和 GET 命令。
示例代码:

import redis
# decode_responses=True:自动将返回的字节类型解码为Python字符串,省去手动decode步骤
r = redis.Redis(decode_responses=True)
# 写入键值对,对应 Redis 原生 SET 命令
r.set('mykey', 'thevalueofmykey')
# 读取键对应的值,对应 Redis 原生 GET 命令
r.get('mykey')
关键参数说明:
decode_responses=True:非常实用的连接参数,开启后 Redis 返回的 bytes 类型数据会自动解码为 Python 字符串,不用每次手动调用decode()方法。r.set():对应 Redis 原生 SET 命令,用于设置一个键值对。r.get():对应 Redis 原生 GET 命令,用于读取指定 key 关联的值。
3.2 批量读取:mget 命令
如果需要一次性读取多个 key 的值,用 mget 比循环调用 get 效率高得多 ------ 它只需要一次网络 IO 就能完成,大幅降低了网络通信开销。
- 对应原生命令:
MGET key1 key2 key3... - 核心功能:批量获取多个指定 key 的值
- 入参规则:可以传入列表 / 元组形式的 key 集合,也可以直接传入多个 key 作为独立参数
- 返回值:返回一个列表,值的顺序与传入 key 的顺序完全对应;如果某个 key 不存在,列表对应位置会返回 None
示例代码:
# 传入列表形式
r.mget(["k1", "k2", "k3"])
# 也可以直接传入多个独立参数
r.mget("k1", "k2", "k3")
文末说明
本期我们梳理了 redis-py 的环境搭建、两种连接方式,以及 String 类型的核心基础操作。后续我们还会继续拆解更多数据类型的高级用法、哨兵与集群操作,以及量化场景下的 Redis 实战技巧。
风险提示:量化交易存在市场风险,本文仅做技术知识分享,不构成任何投资建议。