图解 Redis,还有人看不懂?
阅读本文大概需要 11 分钟。
来自:极客重生
什么是 Redis?
不经常更改且经常被请求的数据 任务关键性较低且经常变动的数据
Redis 架构
单个 Redis 实例 Redis 高可用性 Redis 哨兵 Redis 集群
单个 Redis 实例
Redis 高可用性
Redis 复制
例如,两个实例(主实例和从实例)具有相同的复制 ID,但偏移量相差几百个命令,这意味着如果在实例上重放这些偏移量后面的命令,它们将具有相同的数据集。现在,如果复制 ID 完全不同,并且我们不知道新降级(或重新加入)从节点的先前复制 ID(没有共同祖先)。我们将需要执行昂贵的全量同步。
Redis 哨兵(Sentinel)
监控——确保主从实例按预期工作。 通知——通知系统管理员 Redis 实例中的事件。 故障转移管理——如果主实例不可用并且足够多的(法定数量)节点同意这是真的,Sentinel 节点可以启动故障转移。 配置管理——Sentinel 节点还充当当前主 Redis 实例的发现服务。
如果哨兵节点超出法定人数怎么办? 如果网络分裂将旧的主实例置于少数群体中怎么办?这些写入会发生什么?(剧透:当系统完全恢复时它们会丢失) 如果哨兵节点和客户端节点(应用程序节点)的网络拓扑错位会发生什么?
Redis 集群
Redis Cluster 允许 Redis 的水平扩展。
M1 包含从 0 到 8191 的哈希槽。 M2 包含从 8192 到 16383 的哈希槽。
M1 包含从 0 到 5460 的哈希槽。 M2 包含从 5461 到 10922 的哈希槽。 M3 包含从 10923 到 16383 的哈希槽。
Gossiping 协议
Redis 持久化模型
无持久化
RDB文件
AOF
为什么不兼得?
Forking
推荐阅读:
微软开源的命令行神器成 Win 11 默认工具,网友:是时候彻底弃用 cmd 了!
互联网初中高级大厂面试题(9个G) 内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper......等技术栈!
⬇戳阅读原文领取! 朕已阅
评论