当前位置: 首页 > article >正文

python对redis的增删查改

python对redis的增删查改

  • 安装 redis-py 库
  • 连接 Redis 服务器
    • 1. 字符串(String)
    • 2. 列表(List)
    • 3. 哈希(Hash)
    • 4. 集合(Set)
    • 5. 有序集合(Sorted Set)
    • 1. 删除键
    • 2. 从列表中删除元素
    • 3. 从哈希中删除字段
    • 4. 从集合中删除元素
    • 5. 从有序集合中删除元素
    • 1. 获取字符串
    • 2. 获取列表
    • 3. 获取哈希
    • 4. 获取集合
    • 5. 获取有序集合
    • 1. 更新字符串
    • 2. 更新列表
    • 3. 更新哈希
    • 4. 更新集合
    • 5. 更新有序集合
  • 完整示例

安装 redis-py 库

需要安装 redis-py 库,可以使用 pip 安装:

pip install redis

连接 Redis 服务器

在使用 redis-py 之前,需连接到 Redis 服务器,可使用 Redis 类来创建一个连接实例

import redis

# 创建连接
r = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True)
#r = redis.StrictRedis(host='localhost',port=6379)

1. 字符串(String)

# 设置一个键值对
r.set('key1', 'value1')

# 获取值
value = r.get('key1')
print(value)  # Output: value1

2. 列表(List)

# 在列表的左侧插入值
r.lpush('list1', 'item1')
r.lpush('list1', 'item2')

# 在列表的右侧插入值
r.rpush('list1', 'item3')

# 获取列表的所有值
values = r.lrange('list1', 0, -1)
print(values)  # Output: ['item2', 'item1', 'item3']

3. 哈希(Hash)

# 设置一个哈希的字段
r.hset('hash1', 'field1', 'value1')
r.hset('hash1', 'field2', 'value2')

# 获取哈希的所有字段和值
fields_values = r.hgetall('hash1')
print(fields_values)  # Output: {'field1': 'value1', 'field2': 'value2'}

4. 集合(Set)

# 添加元素到集合
r.sadd('set1', 'item1')
r.sadd('set1', 'item2')
r.sadd('set1', 'item3')

# 获取集合的所有元素
members = r.smembers('set1')
print(members)  # Output: {'item1', 'item2', 'item3'}

5. 有序集合(Sorted Set)

# 添加元素到有序集合
r.zadd('sorted_set1', {'item1': 1, 'item2': 2, 'item3': 3})

# 获取有序集合的所有元素
members_scores = r.zrange('sorted_set1', 0, -1, withscores=True)
print(members_scores)  # Output: [('item1', 1.0), ('item2', 2.0), ('item3', 3.0)]

1. 删除键

# 删除键
r.delete('key1')

2. 从列表中删除元素

# 从列表中删除指定元素
r.lrem('list1', 0, 'item2')

3. 从哈希中删除字段

# 从哈希中删除字段
r.hdel('hash1', 'field1')

4. 从集合中删除元素

# 从集合中删除元素
r.srem('set1', 'item1')

5. 从有序集合中删除元素

# 从有序集合中删除元素
r.zrem('sorted_set1', 'item1')

1. 获取字符串

# 获取字符串值
value = r.get('key1')
print(value)

2. 获取列表

# 获取列表的所有值
values = r.lrange('list1', 0, -1)
print(values)

3. 获取哈希

# 获取哈希的所有字段和值
fields_values = r.hgetall('hash1')
print(fields_values)

4. 获取集合

# 获取集合的所有元素
members = r.smembers('set1')
print(members)

5. 获取有序集合

# 获取有序集合的所有元素
members_scores = r.zrange('sorted_set1', 0, -1, withscores=True)
print(members_scores)

1. 更新字符串

# 更新字符串值
r.set('key1', 'new_value')
value = r.get('key1')
print(value)  # Output: new_value

2. 更新列表

# 在列表的右侧插入新值
r.rpush('list1', 'item4')
values = r.lrange('list1', 0, -1)
print(values)  # Output: ['item2', 'item1', 'item3', 'item4']

3. 更新哈希

# 更新哈希的字段值
r.hset('hash1', 'field2', 'new_value2')
fields_values = r.hgetall('hash1')
print(fields_values)  # Output: {'field2': 'new_value2'}

4. 更新集合

集合中的元素是唯一的,不能直接更新,如果需要更新,可以先删除再插入

# 删除元素后重新插入
r.srem('set1', 'item1')
r.sadd('set1', 'new_item1')
members = r.smembers('set1')
print(members)  # Output: {'new_item1', 'item2', 'item3'}

5. 更新有序集合

有序集合中的元素也可以通过修改分数来更新

# 更新有序集合的分数
r.zadd('sorted_set1', {'item2': 4})
members_scores = r.zrange('sorted_set1', 0, -1, withscores=True)
print(members_scores)  # Output: [('item1', 1.0), ('item3', 3.0), ('item2', 4.0)]

完整示例

import redis

# 创建连接
r = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True)

# 增
r.set('key1', 'value1')
r.lpush('list1', 'item1')
r.hset('hash1', 'field1', 'value1')
r.sadd('set1', 'item1')
r.zadd('sorted_set1', {'item1': 1})

# 查
print(r.get('key1'))  # Output: value1
print(r.lrange('list1', 0, -1))  # Output: ['item1']
print(r.hgetall('hash1'))  # Output: {'field1': 'value1'}
print(r.smembers('set1'))  # Output: {'item1'}
print(r.zrange('sorted_set1', 0, -1, withscores=True))  # Output: [('item1', 1.0)]

# 改
r.set('key1', 'new_value1')
r.rpush('list1', 'item2')
r.hset('hash1', 'field1', 'new_value1')
r.srem('set1', 'item1')
r.sadd('set1', 'new_item1')
r.zadd('sorted_set1', {'item1': 2})

# 查
print(r.get('key1'))  # Output: new_value1
print(r.lrange('list1', 0, -1))  # Output: ['item1', 'item2']
print(r.hgetall('hash1'))  # Output: {'field1': 'new_value1'}
print(r.smembers('set1'))  # Output: {'new_item1'}
print(r.zrange('sorted_set1', 0, -1, withscores=True))  # Output: [('item1', 2.0)]

# 删
r.delete('key1')
r.lrem('list1', 0, 'item1')
r.hdel('hash1', 'field1')
r.srem('set1', 'new_item1')
r.zrem('sorted_set1', 'item1')

# 查
print(r.get('key1'))  # Output: None
print(r.lrange('list1', 0, -1))  # Output: ['item2']
print(r.hgetall('hash1'))  # Output: {}
print(r.smembers('set1'))  # Output: {}
print(r.zrange('sorted_set1', 0, -1, withscores=True))  # Output: []

http://www.kler.cn/a/467100.html

相关文章:

  • 【2025年最新】OpenWrt 更换国内源的指南(图形界面版)
  • 如何配置【Docker镜像】加速器+【Docker镜像】的使用
  • Hello 2025
  • 《量子AI:突破量子比特稳定性与容错性的关键瓶颈》
  • 【LeetCode Hot100 二分查找】搜索插入位置、搜索二维矩阵、搜索旋转排序数组、寻找两个正序数组的中位数
  • 在线二维码生成器-GO在线工具-文本工具
  • ASE50N03-ASEMI中低压N沟道MOS管ASE50N03
  • 什么是网络安全攻防演练,即红蓝对抗?
  • Ubuntu 23.10 换源
  • Huginn - 构建代理、执行自动化任务
  • C语言 memcpy和memcpy_s区别 - C语言零基础入门教程
  • 【开源社区openEuler实践】hpcrunner
  • 检查字符是否相同
  • 【AI日记】25.01.04 kaggle 比赛 3-3 | 王慧玲与基层女性
  • [python]实现可以自动清除过期条目的缓存
  • node.js内置模块之---stream 模块
  • 自动驾驶三维重建
  • Java 正则表达式入门与应用(详细版)
  • RocketMQ场景问题
  • 三甲医院等级评审八维数据分析应用(三)--主数据管理篇(下)
  • 小程序组件 —— 30 组件 - 背景图片的使用
  • xdoj 判断字符串子串
  • Cocos2dx Lua绑定生成中间文件时参数类型与源码类型不匹配
  • 综合课程设计I报告题目: 血氧仪设计
  • SCT12A0,一款2.7V-14V Vin、30W全集成同步升压转换器
  • 【hustoj注意事项】函数返回值问题