Redis
约 952 字大约 3 分钟
2025-12-29
简介
本栏目收录 Redis 内存数据库的学习资料,包括数据结构使用、持久化配置、集群部署等内容。
📖 Redis 技术介绍
Redis(Remote Dictionary Server)是一个开源的、基于内存的高性能键值存储系统,由 Salvatore Sanfilippo 于 2009 年开发。Redis 不仅是缓存,更是一个功能强大的数据结构服务器,支持多种数据结构和丰富的功能。
🎯 核心特性
- 丰富的数据结构:String、Hash、List、Set、Sorted Set、Bitmap、HyperLogLog、GEO、Stream
- 高性能:所有数据存储在内存中,读写速度极快(10 万+ QPS)
- 持久化:RDB 快照和 AOF 日志两种持久化方式
- 原子操作:所有操作都是原子性的
- 发布订阅:支持消息发布/订阅模式
- 事务支持:支持事务(有限的事务能力)
- Lua 脚本:支持 Lua 脚本扩展功能
- 主从复制:支持主从架构,读写分离
⭐ 技术优势
- 极致性能:纯内存操作,单线程模型避免上下文切换
- 数据结构丰富:不仅仅是 key-value,支持复杂数据结构
- 持久化支持:可以将内存数据保存到磁盘
- 高可用:支持哨兵模式和集群模式
- 简单易用:命令简洁,学习曲线平缓
- 生态丰富:各种语言都有成熟的客户端库
🔧 Redis 数据结构
五大基础数据类型:
- String:字符串,最基础的类型(缓存、计数器、分布式锁)
- Hash:哈希表(对象存储、购物车)
- List:双向链表(消息队列、时间线)
- Set:无序集合(标签、共同关注)
- Sorted Set:有序集合(排行榜、优先队列)
特殊数据类型:
- Bitmap:位图(签到、在线状态)
- HyperLogLog:基数统计(UV 统计)
- GEO:地理位置(附近的人、外卖配送)
- Stream:消息流(消息队列)
🏗️ Redis 架构模式
单机模式:
- 最简单的部署方式
- 适合开发和测试环境
主从复制:
- 读写分离,提高读性能
- 数据冗余,提供容灾能力
哨兵模式(Sentinel):
- 自动故障转移
- 监控主从节点健康状态
- 高可用解决方案
集群模式(Cluster):
- 数据分片,水平扩展
- 去中心化架构
- 适合大规模数据存储
💼 适用场景
- 缓存系统:热点数据缓存,减轻数据库压力
- 会话存储:分布式 Session 存储
- 计数器:点赞数、浏览量、库存数量
- 排行榜:游戏排行、热搜榜单
- 消息队列:简单的消息队列实现
- 分布式锁:实现分布式系统的互斥锁
- 实时分析:实时统计、实时推荐
- 地理位置:LBS 应用、附近的人
🎓 学习建议
- 掌握数据结构:理解每种数据结构的特点和使用场景
- 理解持久化:RDB 和 AOF 的区别和配置
- 学习高可用:掌握主从复制、哨兵、集群的原理
- 性能优化:慢查询分析、内存优化、网络优化
- 实战应用:缓存设计模式、缓存雪崩/穿透/击穿解决方案
📚 官方文档与资源
- Redis 官方网站 - Redis 官方主页
- Redis 官方文档 - 完整的官方文档
- Redis 命令参考 - 所有命令详解
- Redis 中文网 - 中文文档翻译
- Try Redis - 在线 Redis 练习
- Redis University - 免费在线课程
- RedisInsight - 官方可视化管理工具
- Redis 设计与实现 - 深入理解 Redis 内部实现
📖 推荐书籍
- 《Redis 设计与实现》:深入理解 Redis 内部机制
- 《Redis 实战》:Redis 实际应用案例
- 《Redis 深度历险》:Redis 进阶知识
贡献者
更新日志
2025/12/29 16:03
查看所有更新日志
6dd59-feat: Add new documentation across Go, PHP, Docker, Linux, Database, Middleware, and Fundamentals, while removing some old images and files.于