前言

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 配置修改hostportpassword等参数

字符串 (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 的常用方法,包括:

  1. 两种连接 Redis 的方式,推荐使用with语句自动管理连接
  2. 字符串类型的增删改查及过期时间设置
  3. 列表类型的插入、删除、查询等操作
  4. 哈希类型的字段操作
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐