This repository has been archived on 2026-05-24 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
tags, create time
tags
create time
2026-05-15 18:10
Redis 知识索引
概述
本文件夹汇总 Redis 相关的核心知识点,从数据结构到生产实践,覆盖日常开发和高阶场景。Redis 不只是「一个快」的键值存储——它的五种基础数据类型、高级数据结构(Sorted Set / Bitmap / HyperLogLog / Bloom Filter)、持久化机制、集群方案以及常见架构模式,构成了后端服务中不可或缺的基础设施层。
[!QUESTION] 为什么用 Redis?
纯内存读写,延迟在微秒级
单线程模型避免了锁竞争和上下文切换
丰富的数据结构可以直接表达业务语义(如排行榜用 Sorted Set)
发布订阅、Lua 脚本、Stream 等提供了类消息队列的能力
知识体系
一、入门基础
[!TIP] 理解编码胜过记忆命令
同一个数据类型在不同容量下会切换不同编码(如 Hash 在元素少时用 ziplist,多了切 hash table)。理解这一点才能写出真正高效的 Redis 代码。
二、持久化与高可用
[!QUESTION] RDB 还是 AOF?怎么选?
对可用性要求极高 : AOF everysec,最多丢 1 秒数据
对数据安全要求极高 :AOF always(牺牲性能换安全)
混合持久化 是最佳平衡点:重启时加载 RDB 块(快),回放 AOF 日志补齐(准)
三、数据结构进阶
#
主题
链接
3.1
Sorted Set 高级玩法
hhs/Redis/08-SortedSet精解 — 排行榜、延迟队列、Geo、优先级队列
3.2
Bitmap
签到、DAU 统计——每位一天,极致省内存
3.3
HyperLogLog
亿级 UV 去重统计,误差 < 0.1%,仅占 12KB
3.4
Bloom Filter
防缓存穿透、URL 去重——false positive 可接受
3.5
Stream
可靠消息队列,Consumer Group 消费组模型
3.6
GEO
附近的人、距离计算、围栏检测——底层就是 ZSet
四、缓存架构模式
#
主题
链接
4.1
Cache-Aside
先更 DB 再删缓存;读时懒加载回填
4.2
Read/Write Through
中间件自动管理一致性
4.3
缓存穿透
布隆过滤器 / 空值缓存
4.4
缓存击穿
互斥锁重建 / 逻辑过期异步刷新
4.5
缓存雪崩
TTL 随机抖动 + 多级缓存 + 限流降级
4.6
一致性哈希
虚拟节点解决扩容抖动
hhs/Redis/10-缓存架构模式 — 完整实战文档包含 Go 示例代码和架构图
五、高级特性
#
主题
链接
5.1
事务
MULTI/EXEC 不支持回滚
5.2
Lua 脚本
原子执行多命令——分布式锁、限流器、状态机
5.3
Pub/Sub & Stream
实时通知 vs 可靠消息投递
5.4
Pipeline
批量发送减少 RTT, 50~200 条/batch 最优
5.5
Keyspace Notification
过期事件订阅
5.6
Memory Policy
allkeys-lru / lfu / noeviction 等
hhs/Redis/09-高级特性 — 完整实战文档包含 Lua 脚本模板和 Pipeline 用法
六、运维与性能调优
#
主题
链接
6.1
慢查询分析
SLOWLOG GET,阈值可调
6.2
内存分析
INFO memory、碎片率治理、Swap 排查
6.3
大 Key 治理
SCAN 替代 KEYS、UNLINK 异步删除、拆分策略
6.4
连接池配置
go-redis PoolSize、Timeout、Retry 参数调优
6.5
监控指标
QPS、命中率、CPU、客户端数、延迟
6.6
备份与迁移
BGSAVE、定时备份脚本、redis-shake、云服务迁移
6.7
安全加固
requirepass、ACL、rename-command、TLS
hhs/Redis/11-运维与性能调优 — 完整运维手册含监控脚本和安全清单
七、生态集成
关联笔记