Python Redis 简介

Python Redis 简介_第1张图片


Redis 是一个高性能的内存键值数据库,支持多种数据结构(字符串、列表、哈希、集合等),常用于缓存、消息队列和实时数据处理。Python 通过 redis-py 库与 Redis 交互。


核心功能
  1. 内存存储:数据存储在内存中,读写速度极快(微秒级)
  2. 持久化选项:支持 RDB 快照和 AOF 日志两种持久化方式
  3. 数据结构丰富
    • 字符串(Strings)
    • 哈希(Hashes)
    • 列表(Lists)
    • 集合(Sets)
    • 有序集合(Sorted Sets)
    • 流(Streams)
  4. 高可用:支持主从复制和 Redis Sentinel

Python 操作 Redis 示例

1. 安装库
pip install redis
2. 基础操作
import redis

# 连接Redis(默认localhost:6379)
r = redis.Redis()

# 字符串操作
r.set("name", "Alice")          # 设置键值
print(r.get("name"))            # 输出: b'Alice'(二进制格式)
print(r.get("name").decode())   # 输出: Alice(转为字符串)

# 设置过期时间(30秒)
r.setex("temp_data", 30, "expiring soon")
3. 哈希操作(存储对象)
# 存储用户信息
user_data = {"name": "Bob", "age": "28", "email": "[email protected]"}
r.hset("user:1001", mapping=user_data)

# 获取字段
print(r.hget("user:1001", "name"))  # b'Bob'
print(r.hgetall("user:1001"))       # {b'name': b'Bob', b'age': b'28', ...}
4. 列表操作(消息队列)
# 向左添加元素
r.lpush("tasks", "task1", "task2")  

# 向右添加元素
r.rpush("tasks", "task3")         

# 弹出元素
task = r.rpop("tasks")  # 获取并移除最右侧元素
print(task)  # b'task3'
5. 发布订阅
# 发布者
r.publish("news_channel", "Breaking news!")

# 订阅者(需在另一个进程/线程运行)
pubsub = r.pubsub()
pubsub.subscribe("news_channel")
for message in pubsub.listen():
    if message["type"] == "message":
        print(message["data"])  # b'Breaking news!'
6. 管道操作(批量执行)
pipe = r.pipeline()
pipe.set("counter", 100)
pipe.incr("counter")  # +1
pipe.incrby("counter", 50)  # +50
result = pipe.execute()
print(result)  # [True, 101, 151]

典型应用场景

场景 使用方式
缓存 存储数据库查询结果
会话存储 保存用户登录状态
排行榜 使用有序集合(Sorted Set)
限流系统 INCR + EXPIRE 实现请求计数
实时消息推送 发布订阅模式

注意事项

  1. 内存管理:定期监控内存使用,避免溢出
  2. 持久化配置:根据需求选择 RDB/AOF 或混合模式
  3. 连接池:使用连接池提升性能
    pool = redis.ConnectionPool(max_connections=10)
    r = redis.Redis(connection_pool=pool)
    
  4. 集群支持:大规模部署使用 Redis Cluster

官方文档:redis-py 文档
Redis 命令参考:Redis Commands

通过合理使用 Redis,可显著提升 Python 应用的性能,尤其适合高并发读写场景。

你可能感兴趣的:(Python库大全,python,redis,bootstrap)