简介
Redis 是一种高性能的内存数据存储系统,常被用作缓存、消息代理、数据库或队列。它支持多种数据结构:字符串、列表、集合、哈希等。Python 官方客户端 redis-py 提供了便捷的接口来使用 Redis 的全部功能。
Redis-py 是 Python 应用中最流行、最可靠的 Redis 客户端。该库由社区积极开发和维护,为与 Redis 服务器交互提供了简单直观的 API。
什么是 redis-py 库
Redis-py 是官方 Python 库,用于与 Redis 交互,全面支持 Redis 的所有功能。该库使用纯 Python 编写,同时提供同步和异步接口。
redis-py 的主要功能
该库提供了与 Redis 交互的完整功能集:
- 支持所有 Redis 数据类型
- 事务和管道操作
- 发布/订阅功能
- 支持 Redis Sentinel 和集群
- 通过 redis.asyncio 实现异步操作
- 连接池优化性能
- 断线自动重连
安装与连接
安装库
pip install redis
如需安装额外依赖:
pip install redis[hiredis] # 提升性能
连接 Redis
基本连接(默认端口 6379):
import redis
# 连接本地 Redis
client = redis.Redis(host='localhost', port=6379, db=0)
# 带密码连接
client = redis.Redis(host='localhost', port=6379, password='yourpassword', db=0)
# 通过 URL 连接
client = redis.from_url('redis://localhost:6379/0')
测试连接
try:
response = client.ping()
print(f"连接成功: {response}") # True
except redis.ConnectionError:
print("Redis 连接失败")
Redis 基础与核心数据类型
Redis 支持五种主要数据类型,每种都有其特点和操作方法:
字符串 (Strings)
Redis 中最基础的数据类型。可存储文本、数字、二进制数据。
列表 (Lists)
有序的字符串集合。支持在头部和尾部添加元素。
集合 (Sets)
无序的唯一字符串集合。支持交集、并集等操作。
哈希 (Hashes)
字符串字段与值之间的映射。非常适合表示对象。
有序集合 (Sorted Sets)
每个元素带分数的集合。元素按分数排序。
通过 redis-py 使用 Redis 核心命令
字符串操作
# 设置和获取值
client.set("user:name", "小明")
name = client.get("user:name").decode('utf-8')
# 设置带过期时间
client.setex("session:123", 3600, "active") # 1 小时
# 数字操作
client.set("counter", 0)
client.incr("counter") # 加 1
client.incrby("counter", 5) # 加 5
client.decr("counter") # 减 1
列表操作
# 添加元素
client.lpush("tasks", "task1", "task2") # 头部添加
client.rpush("tasks", "task3", "task4") # 尾部添加
# 获取元素
tasks = client.lrange("tasks", 0, -1) # 所有元素
first_task = client.lpop("tasks") # 移除并返回第一个
last_task = client.