Redis
常用命令
数据结构
GEO
Stream
持久化
RDB
AOF
内存管理
内存分配
- String 类型的 value 最大可存储 512M。
- List 类型,元素个数最多 2^32-1
- Set 类型,元素个数最多 2^32-1
- Hash 类型,键值对个数最多 2^32-1
内存压缩
过期数据
主动处理
被动处理
内存挥手策略
LRU 算法
LFU 算法
主从复制
主从复制流程
主从复制应用场景
- 读写分离
哨兵高可用机制
- 哨兵如何知道 Redis 主从信息(自动发现机制)
- 什么是 master 主观下线
- 什么是可观下线
- 哨兵之间如何通信(哨兵之间的自动发现)
- 哪个哨兵负责故障转移?(哨兵领导选举机制)
- slave 选举机制
- 最终主从切换的过程
Redis 集群分片存储
- 增加了 slot 槽的计算,是不是比单机性能差?
- redis 集群大小,到底可以装多少数据?
- 集群节点间是怎么通信的?
- ask 和 moved 重定向的区别
- 数据倾斜和访问倾斜的问题
- slot 手动迁移怎么做?
- 节点之间会交换信息,传递的消息包括槽点信息,带来宽带消耗。
- Pub/Sub 发布订阅机制
- 读写分离
非官方集群方案
Codis
Redis 监控
Monitor 命令
Info 命令
图形化监控工具
RedisLive
Memcached
XMemcached
Memcached 应用场景
- 数据查询缓存
- 计数器
- 乐观锁
- 防止重复处理
Memcached 内存管理
Memcached 缓存策略
LRU
分段 LRU
LRU Crawler
集群方案
Twemproxy
分布式算法
Hash + 取模
一致性 Hash 算法
缓存雪崩
缓存击穿
查询必然不存在的数据,请求透过 Redis,直击数据库。