Redis-py Python 教程:Redis 数据类型与实战操作

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

简介

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.                    

推荐