Python 操作 Redis 详细教程:从入门到实战
·
前言
Redis 是一款高性能的键值对存储数据库,以其速度快、支持多种数据结构而广受欢迎。本文将基于 Python 的redis库,详细介绍如何使用 Python 操作 Redis,包括连接配置、常用数据结构(字符串、列表、哈希)的基本操作。
准备工作
首先需要安装 Python 的 Redis 客户端库:
bash
pip install redis
确保你的 Redis 服务已经启动,并且知道连接所需的主机地址、端口号和密码(如果设置了的话)。
连接 Redis
在 Python 中连接 Redis 有两种常用方式:
方式一:直接创建连接对象
python
运行
import redis
# 创建连接对象
client = redis.Redis(host='localhost', port=6379, password='123321')
# 选择数据库(Redis默认有16个数据库,编号0-15)
client.select(1)
# 操作完成后关闭连接
client.close()
方式二:使用 with 语句(推荐)
使用with语句可以自动管理连接,无需手动调用close()方法:
python
运行
import redis
# 使用with语句创建连接,自动管理连接生命周期
with redis.Redis(db=0, password='123321') as client:
# 这里编写操作代码
pass
注意:根据你的 Redis 配置修改
host、port、password等参数
字符串 (String) 操作
字符串是 Redis 最基本的数据类型,一个键对应一个值。
python
运行
import redis
with redis.Redis(db=0, password='123321') as client:
# 设置带过期时间的键(单位:秒)
client.setex("info", 10, "212") # 键"info"将在10秒后过期
# 获取键的值
value = client.get("name")
if value:
print(value.decode('utf8')) # 注意需要解码为字符串
# 查看键的数据类型
print(client.type("name")) # 返回b'string'表示字符串类型
# 检查键是否存在
print(client.exists("name")) # 存在返回1,不存在返回0
# 获取键的剩余生存时间(单位:秒)
print(client.ttl("info")) # 返回-2表示键不存在,-1表示永不过期
# 模糊查询键
print(client.keys("*a*")) # 返回所有包含'a'的键
列表 (List) 操作
Redis 的列表是有序的字符串列表,支持从两端插入和删除元素。
python
运行
import redis
with redis.Redis(db=1, password='123321') as client:
# 左侧插入元素
client.lpush("name", 1, 2, 3, 4)
# 右侧插入元素
client.rpush("name", 0, -1)
# 右侧删除元素
client.rpop("name")
# 左侧删除元素
client.lpop("name")
# 获取列表长度
print(client.llen("name"))
# 返回所有元素(0表示第一个,-1表示最后一个)
print(client.lrange("name", 0, -1))
# 返回指定范围的元素
print(client.lrange("name", 1, 3))
# 截取列表,只保留指定范围的元素(左闭右闭)
client.ltrim("name", 1, 4)
# 获取指定索引的元素
print(client.lindex("name", 2)) # 返回索引为2的元素
# 修改指定索引的元素值
client.lset("name", 1, "hhh")
print(client.lrange("name", 0, -1)) # 查看修改后的结果
注意:Redis 列表的索引从 0 开始,支持负数索引(-1 表示最后一个元素)
哈希 (Hash) 操作
哈希类型适合存储对象,类似于 Python 中的字典,包含字段 (field) 和对应的值 (value)。
python
运行
import redis
with redis.Redis(db=2, password='123321') as client:
# 设置哈希字段值
client.hset("scores", "英语", 66)
# 获取哈希字段值
math_score = client.hget("scores", "数学")
if math_score:
print(math_score.decode('utf8'))
# 获取哈希字段数量
print(client.hlen("scores"))
# 检查哈希中是否存在某个字段
print(client.hexists("scores", "语文")) # 存在返回1,不存在返回0
# 删除哈希中的字段
client.hdel("scores", "数学")
# 获取哈希中所有字段名
for field in client.hkeys("scores"):
print(field.decode("utf8"))
# 获取哈希中所有字段值
print(client.hvals("scores"))
总结
本文介绍了 Python 操作 Redis 的常用方法,包括:
- 两种连接 Redis 的方式,推荐使用
with语句自动管理连接 - 字符串类型的增删改查及过期时间设置
- 列表类型的插入、删除、查询等操作
- 哈希类型的字段操作
更多推荐
所有评论(0)