1. Redis基础概念与核心特性RedisRemote Dictionary Server是一个开源的、基于内存的数据结构存储系统由Salvatore Sanfilippo在2009年开发。它不仅仅是一个简单的键值存储更提供了丰富的数据结构和功能使其成为现代应用架构中不可或缺的组件。1.1 为什么选择Redis在实际项目中我选择Redis主要基于以下几个关键特性内存存储数据主要存储在内存中读写性能极高10万/秒的QPS数据结构丰富支持字符串、哈希、列表、集合等复杂类型持久化选项支持RDB快照和AOF日志两种持久化方式高可用方案通过Redis Sentinel和Cluster提供故障转移能力原子操作单线程模型保证命令的原子性执行注意虽然Redis是单线程处理命令但实际从v4.0开始就支持多线程处理后台任务如持久化v6.0后更支持多线程I/O。1.2 Redis适用场景根据我的项目经验Redis特别适合以下场景缓存系统减轻数据库压力提升响应速度会话存储分布式环境下的用户会话管理排行榜/计数器利用有序集合实现实时排名消息队列使用List或Stream实现轻量级队列实时系统如社交网络的关注关系、点赞功能2. Redis安装与配置实践2.1 Windows环境安装虽然Redis官方推荐Linux环境但在开发测试时Windows安装也很常见。以下是实测可用的Windows安装方案# 1. 下载微软维护的Redis Windows版本 https://github.com/microsoftarchive/redis/releases # 2. 解压后运行redis-server.exe redis-server.exe redis.windows.conf # 3. 另开cmd窗口连接测试 redis-cli.exe ping # 应返回PONG2.2 Linux环境安装推荐生产使用# Ubuntu/Debian sudo apt update sudo apt install redis-server # 检查运行状态 sudo systemctl status redis # 修改基础配置 sudo vim /etc/redis/redis.conf关键配置项bind 0.0.0.0 # 允许远程连接 requirepass yourpassword # 设置密码 maxmemory 2gb # 内存限制 maxmemory-policy allkeys-lru # 内存淘汰策略2.3 可视化工具推荐Another Redis Desktop Manager开源免费支持多平台RedisInsightRedis官方推出的管理工具RedissonJava客户端内置的web控制台3. Redis核心数据结构与命令3.1 字符串String最基本的键值类型最大能存储512MB数据SET user:1000 John Doe # 设置键值 GET user:1000 # 获取值 INCR counter # 原子递增 EXPIRE user:1000 3600 # 设置过期时间(秒)3.2 哈希Hash适合存储对象HSET user:1000 name John age 30 HGET user:1000 name HGETALL user:10003.3 列表List双向链表结构可实现队列/栈LPUSH tasks task1 RPUSH tasks task2 LPOP tasks # 先进先出3.4 集合Set无序唯一元素集合SADD tags redis database SISMEMBER tags redis # 检查存在性3.5 有序集合ZSet带分数的排序集合ZADD leaderboard 100 player1 200 player2 ZREVRANGE leaderboard 0 2 # 获取前三名4. Redis持久化实战4.1 RDB快照配置示例save 900 1 # 900秒内至少1次修改则触发保存 save 300 10 # 300秒内至少10次修改 dbfilename dump.rdb优点紧凑的二进制格式适合灾难恢复最大化Redis性能缺点可能丢失最后一次快照后的数据4.2 AOF日志配置示例appendonly yes appendfsync everysec # 折衷方案重写机制redis-cli BGREWRITEAOF # 手动触发5. Redis高可用方案5.1 主从复制配置从节点REPLICAOF 192.168.1.100 63795.2 Sentinel哨兵典型三节点哨兵配置sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 600005.3 Cluster集群创建集群redis-cli --cluster create 192.168.0.1:7000 192.168.0.2:7000 \ 192.168.0.3:7000 192.168.0.4:7000 192.168.0.5:7000 \ 192.168.0.6:7000 --cluster-replicas 16. 性能优化与问题排查6.1 常见性能问题内存不足redis-cli info memory # 查看内存使用解决方案增加maxmemory优化数据结构设置合理的淘汰策略慢查询redis-cli slowlog get 10 # 获取最近10条慢查询优化方案避免大键操作使用pipeline减少网络往返6.2 监控指标关键监控项redis-cli info # 查看所有信息 redis-cli info stats # 重点关注 redis-cli info replication # 复制状态7. Redis安全实践基础安全措施requirepass yourStrongPassword rename-command FLUSHALL # 禁用危险命令 bind 内网IP # 限制访问IPTLS加密v6.0tls-port 6379 tls-cert-file /path/to/redis.crt tls-key-file /path/to/redis.keyACL控制v6.0ACL SETUSER alice on password ~cached:* get set8. Redis在社交网站中的应用示例8.1 用户关系设计# 用户关注集合 SADD user:1000:following 2000 SADD user:2000:followers 1000 # 共同关注计算 SINTER user:1000:following user:2000:following8.2 动态时间线# 发布动态 LPUSH user:1000:posts post:1234 # 推送给粉丝 ZADD user:2000:timeline 1625097600 post:12348.3 分布式锁实现-- Lua脚本保证原子性 local key KEYS[1] local value ARGV[1] local ttl ARGV[2] if redis.call(setnx, key, value) 1 then redis.call(expire, key, ttl) return true else return false end9. Redis面试核心问题解析Redis为什么快内存操作IO多路复用单线程避免锁竞争高效数据结构持久化方案如何选择RDB适合备份和快速恢复AOF更高数据安全性生产环境建议两者结合缓存雪崩/穿透/击穿解决方案雪崩随机过期时间多级缓存穿透布隆过滤器空值缓存击穿互斥锁热点数据永不过期Redis集群数据分片原理16384个哈希槽CRC16(key) mod 16384计算槽位节点负责特定范围的槽Redis事务特性MULTI/EXEC命令组合不支持回滚隔离性保证Redis6新特性多线程I/O客户端缓存ACL权限控制TLS加密支持10. 学习资源与进阶路线10.1 推荐学习路径基础数据结构 → 持久化 → 复制 → 哨兵 → 集群客户端使用 → 性能优化 → 应用场景实践10.2 必读书籍《Redis设计与实现》《Redis实战》《Redis开发与运维》10.3 实战建议在自己的项目中引入Redis解决实际问题使用Redis实现一个完整的社交功能模块搭建Redis集群并模拟故障转移
企业数字化 ERP 产品动态
相关推荐
生产级Agent记忆系统设计:AgentScope架构与SSE流式实践 1. 为什么"记忆"才是生产级 Agent 和玩具 Demo 的分水岭大多数人第一次搭 AI Agent,跑通的流程都差不多:用户提问,模型思考,调用一两个工具,返回答案,结束。这个链路在演示场景里看起来很惊艳&am… · 2026/11/3 6:10:14
AI工程化落地:从零构建可审计、可回滚的生产级AI流水线 1. 从零开始构建AI工程体系:这不是搭积木,是重建地基“AI Engineering from Scratch”这个标题乍看像一句口号,实则藏着过去三年我踩过最多坑、重装最多遍环境、推翻最多轮设计的实战总结。它不是教你怎么调用OpenAI API跑个聊天机器人&#… · 2026/11/3 6:10:14
TMN架构解析:电信网管的底层操作系统与E300/U2000实战原理 简介:本资源是一份面向通信工程初学者与传输网管新人的系统性入门教程,聚焦TMN理论框架、SDH网管逻辑、国家EMS技术规范及中兴E300网管实操四大核心模块,帮助读者建立电信管理网的完整知识脉络并掌握基础运维能力。资源为单文件PPT格式&#… · 2026/11/3 7:04:52
RFID技术在鞋类智能制造中的关键应用与优化 1. RFID技术在鞋类产线中的核心价值解析在鞋类制造行业干了十几年,我亲眼见证了从纯手工到半自动化的转型过程。传统鞋类加工包装产线最让人头疼的就是多款式、多尺码混线生产的管理难题。记得2018年我们在东莞的工厂做运动鞋代工时,每天光是处理尺码混装… · 2026/11/3 7:04:52
SQLBot在macOS上的源码部署与配置指南 1. 项目概述SQLBot是一个基于自然语言处理技术的数据库查询工具,它允许用户通过自然语言与数据库进行交互,而无需编写复杂的SQL语句。作为一名长期使用Mac进行开发的工程师,我最近尝试了在macOS系统上从源码部署SQLBot的全过程。本文将详细记… · 2026/11/3 7:04:52
JavaScript贪吃蛇游戏开发:从零实现MVC架构与Canvas动画 1. 贪吃蛇游戏开发概述贪吃蛇作为经典游戏,从诺基亚时代就风靡全球。这次我们用原生JavaScriptHTMLCSS三件套,从零打造一个现代化版本的贪吃蛇游戏。不同于简单的教学demo,我们将实现以下专业级功能:霓虹灯风格的视觉设计… · 2026/11/3 7:04:52
政务CMS中WANGEDITOR多格式文档支持扩展方案 1. 政务CMS中WANGEDITOR多格式文档支持扩展方案作为一名长期奋战在政务信息化一线的开发者,我深知政务系统对文档处理的高要求。最近在某个市级政务平台项目中,我们遇到了一个典型需求:如何在基于VuePHP的政务CMS中,让WANGEDITOR富… · 2026/11/3 7:04:52
AD9361寄存器配置三大玄学翻车点与工程级避坑指南 简介:本资源是一份面向嵌入式射频开发工程师与SDR系统设计者的AD9361寄存器级配置实战指南,聚焦于芯片底层驱动适配与硬件参数精细化调优。内容覆盖参考时钟设定(40MHz)、LVDS接口配置、采样率与带宽协同设置、AGC/MGC增益模式选择… · 2026/11/3 7:03:52
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46