在这里插入图片描述


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": "bob@example.com"}
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 应用的性能,尤其适合高并发读写场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85477.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85477.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85477.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac安装whistle代理抓包工具(支持mock)

工具地址:https://wproxy.org/whistle/ 1、 安装nodejs环境 参考方法:https://github.com/nvm-sh/nvm 1)安装 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash如图,安装成功 2)…

基于 mydumper 实现 MySQL 定期全量备份、恢复方案

一、Mydumper 工具介绍 mydumper 是一款社区开源的逻辑备份工具,由 C 语言编写,与 MySQL 官方提供的 mysqldump 相比,它具有更高的性能和更多的功能,例如: • 支持多线程导出数据,速度更快; • 支持一致性备份; • 支持将导出文件压缩,节约空间; • 支持多线程恢复;…

C++中,std::async 一个用于异步编程的工具

在C中&#xff0c;std::async 是一个用于异步编程的工具&#xff0c;它允许你在一个单独的线程中执行任务&#xff0c;并返回一个 std::future 对象&#xff0c;通过这个对象可以获取任务的结果或者检查任务的状态。 基本用法1 lambda 表达式 #include <iostream> #incl…

【Linux驱动开发 ---- 4_驱动开发框架和 API】

Linux驱动开发 ---- 4_驱动开发框架和 API 目录 Linux驱动开发 ---- 4_驱动开发框架和 API&#x1f3af; 目标&#xff1a;&#x1f4cc; 1. Linux 设备模型&#xff08;Linux Device Model&#xff09;**设备模型的核心概念**&#xff1a; &#x1f4cc; 2. 设备树&#xff08…

实景VR展厅建设流程

实景VR展厅&#xff1a;建设流程、用途、案例与未来发展 随着虚拟现实&#xff08;VR&#xff09;技术的发展&#xff0c;实景VR展厅作为一种创新的展示方式&#xff0c;正在各个领域得到广泛应用。实景VR展厅提供沉浸式的体验&#xff0c;丰富展示内容和形式&#xff0c;为观…

android下拉栏添加媒体音量调节

参考下拉栏的屏幕亮度调节&#xff0c;添加媒体音量调节。 平台信息&#xff1a; MSM8909.LA.3.1.2_AOSP PLATFORM_VERSION9 BUILD_IDPKQ1.190903.001 效果图 布局文件与音量图标 Index: frameworks/base/packages/SystemUI/res/layout/quick_settings_media_volume_dialog.x…

VS Code 配置ROS2开发环境常见问题记录

1、ctrlshiftp后找不到C/C: Edit configurations 安装或重装C插件。 参考链接&#xff1a; 搜索C/C: Edit configurations显示no matching command问题https://www.cnblogs.com/hunghau/p/17195622.html 2、ROS2 API无法转到定义 &#xff08;1&#xff09;在c_cpp_proper…

Docker Desktop搭建RocketMQ的完整教程

Docker Desktop搭建RocketMQ图文教程 1. 准备工作 已安装Docker Desktop&#xff08;本地安装方法参考上一节教程&#xff09;。需部署三个组件&#xff1a;NameServer、Broker、Console&#xff08;管理界面&#xff09;。 2. 创建目录和文件 在任意盘&#xff08;如D盘&am…

算法35天|1049. 最后一块石头的重量 II、 494. 目标和、 474.一和零

1049. 最后一块石头的重量 II 题目 思路与解法 class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum 0;for(int i0;i<stones.size();i){sum stones[i];}// 问题转换为&#xff1a;// 先求得&#xff0c;背包容量为target时&#x…

AWS S3拒绝非https的请求访问

问题 aws s3桶&#xff0c;安全要求必须强制使用ssl加密访问&#xff0c;即https。需要添加一个策略拒绝所有不是https的访问s3桶请求。 解决 在对于桶添加相关拒绝策略即可。如下&#xff1a; {"Version": "2012-10-17","Statement": [{&qu…

GitLab CVE-2025-4278 安全漏洞解决方案

本分分享极狐GitLab 补丁版本 18.0.2, 17.11.4, 17.10.8 的详细内容。这几个版本包含重要的缺陷和安全修复代码&#xff0c;我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS&#xff0c;技术团队已经进行了升级&#xff0c;无需用户采取任…

Async、await是什么?跟promise有什么区别?使用的好处是什么

Async/Await 与 Promise 的深度解析 一、基本概念 1. Promise Promise 是 ES6 引入的异步编程解决方案&#xff0c;表示一个异步操作的最终完成&#xff08;或失败&#xff09;及其结果值。 function fetchData() {return new Promise((resolve, reject) > {setTimeout(…

MySQL数据库中所有表的空间占用与行数统计

查看某个数据库中所有表的空间与行数统计 SELECT TABLE_NAME AS 表名,TABLE_ROWS AS 行数,ROUND(DATA_LENGTH / 1024 / 1024, 2) AS 数据大小(MB),ROUND(INDEX_LENGTH / 1024 / 1024, 2) AS 索引大小(MB),ROUND((DATA_LENGTH INDEX_LENGTH) / 1024 / 1024, 2) AS 总占用空间(…

el-upload 点击上传按钮前先判断条件满足再弹选择文件框

解决思路&#xff1a; 先写一个上传按钮&#xff0c;点击上传按钮后判断条件是否满足&#xff0c;满足则显示上传组件并使用ref来控制点击事件&#xff0c;隐藏自身。 注&#xff1a;上传成功或者上传失败时或者上传前判断条件添加不满足return将this.isShow true 代码部分…

django ReturnDict 如何修改内容

在Django中&#xff0c;QuerySet 对象通常用于从数据库中检索数据&#xff0c;并且可以被转换为各种格式&#xff0c;例如字典。如果你想修改QuerySet返回的结果&#xff08;例如&#xff0c;将其转换为dict&#xff09;&#xff0c;你可以在查询执行后进行操作。这里有几种常见…

密室出逃消消乐小游戏微信流量主小程序开源

这个密室出逃消消乐小游戏采用了微信小程序的标准目录结构&#xff0c;包含以下核心功能&#xff1a; 游戏界面&#xff1a;6x6 的网格布局&#xff0c;随机生成不同类型的物品 游戏逻辑&#xff1a;交换相邻物品&#xff0c;消除三个或以上相同类型的物品 计分系统&#xff1a…

SmartMediaKit实战经验总结之高稳定、低延迟、强兼容

在万物互联与数字化加速融合的今天&#xff0c;音视频实时通信技术正成为各行业发展的核心驱动力。从教育到工业、从安防到远程医疗&#xff0c;毫秒级低延迟的音视频交互体验已成为新一代实时系统的“生命线”。而在这个领域&#xff0c;视沃科技旗下的大牛直播SDK&#xff08…

前端性能调优工具与指标

性能指标解析 核心Web指标 核心Web指标(Core Web Vitals)是Google定义的一组关键性能指标&#xff0c;直接影响用户体验和SEO排名&#xff1a; FCP (First Contentful Paint): 首次内容绘制&#xff0c;记录页面首次渲染任何文本、图像、非白色画布或SVG的时间点 优: < 1.…

LeeCode2294划分数组使最大值为K

项目场景&#xff1a; 给你一个整数数组 nums 和一个整数 k 。你可以将 nums 划分成一个或多个 子序列 &#xff0c;使 nums 中的每个元素都 恰好 出现在一个子序列中。 在满足每个子序列中最大值和最小值之间的差值最多为 k 的前提下&#xff0c;返回需要划分的 最少 子序列…

中国医科大借iMeta影响因子跃升至33.2(中科院1区)东风,凭多组学联合生信分析成果登刊

中国医科大借iMeta影响因子跃升至33.2&#xff08;中科院1区&#xff09;东风&#xff0c;凭多组学联合生信分析成果登刊 2025年6月18日&#xff0c;科睿唯安正式发布了2024年期刊的最新影响因子(发送关键词 “2024JIF” 至 “生信学术纵览”&#xff0c;即可下载完整版最新影…