6、slave node 主要用来进行横向扩容 , 做读写分离 , 扩容的 slave node 可以提高读的吞吐量 。
注意 , 如果采用了主从架构 , 那么建议必须开启 master node 的持久化 , 不建议用 slave node 作为 master node 的数据热备 , 因为那样的话 , 如果你关掉 master 的持久化 , 可能在 master 宕机重启的时候数据是空的 , 然后可能一经过复制 , slave node 的数据也丢了 。
另外 , master 的各种备份方案 , 也需要做 。万一本地的所有文件丢失了 , 从备份中挑选一份 rdb 去恢复 master , 这样才能确保启动的时候 , 是有数据的 , 即使采用了后续讲解的高可用机制 , slave node 可以自动接管 master node , 但也可能 sentinel 还没检测到 master failure , master node 就自动重启了 , 还是可能导致上面所有的 slave node 数据被清空 。
redis 主从复制的核心原理
当启动一个 slave node 的时候 , 它会发送一个 PSYNC 命令给 master node 。
如果这是 slave node 初次连接到 master node , 那么会触发一次 full resynchronization 全量复制 。此时 master 会启动一个后台线程 , 开始生成一份 RDB 快照文件 ,
同时还会将从客户端 client 新收到的所有写命令缓存在内存中 。RDB 文件生成完毕后 , master 会将这个 RDB 发送给 slave , slave 会先写入本地磁盘 , 然后再从本地磁盘加载到内存中 ,
接着 master 会将内存中缓存的写命令发送到 slave , slave 也会同步这些数据 。
slave node 如果跟 master node 有网络故障 , 断开了连接 , 会自动重连 , 连接之后 master node 仅会复制给 slave 部分缺少的数据 。

文章插图
过程原理
1、当从库和主库建立MS关系后 , 会向主数据库发送SYNC命令
2、主库接收到SYNC命令后会开始在后台保存快照(RDB持久化过程) , 并将期间接收到的写命令缓存起来
3、当快照完成后 , 主Redis会将快照文件和所有缓存的写命令发送给从Redis
4、从Redis接收到后 , 会载入快照文件并且执行收到的缓存的命令
5、之后 , 主Redis每当接收到写命令时就会将命令发送从Redis , 从而保证数据的一致
缺点
所有的slave节点数据的复制和同步都由master节点来处理 , 会照成master节点压力太大 , 使用主从从结构来解决
Redis集群的主从复制模型是怎样的?
为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用 , 所以集群使用了主从复制模型 , 每个节点都会有N-1个复制品
生产环境中的 redis 是怎么部署的?
redis cluster , 10 台机器 , 5 台机器部署了 redis 主实例 , 另外 5 台机器部署了 redis 的从实例 , 每个主实例挂了一个从实例 , 5 个节点对外提供读写服务 , 每个节点的读写高峰qps可能可以达到每秒 5 万 , 5 台机器最多是 25 万读写请求/s 。
机器是什么配置?32G 内存+ 8 核 CPU + 1T 磁盘 , 但是分配给 redis 进程的是10g内存 , 一般线上生产环境 , redis 的内存尽量不要超过 10g , 超过 10g 可能会有问题 。
5 台机器对外提供读写 , 一共有 50g 内存 。
因为每个主实例都挂了一个从实例 , 所以是高可用的 , 任何一个主实例宕机 , 都会自动故障迁移 , redis 从实例会自动变成主实例继续提供读写服务 。
你往内存里写的是什么数据?每条数据的大小是多少?商品数据 , 每条数据是 10kb 。100 条数据是 1mb , 10 万条数据是 1g 。常驻内存的是 200 万条商品数据 , 占用内存是 20g , 仅仅不到总内存的 50% 。目前高峰期每秒就是 3500 左右的请求量 。
其实大型的公司 , 会有基础架构的 team 负责缓存集群的运维 。
说说Redis哈希槽的概念?
Redis集群没有使用一致性hash,而是引入了哈希槽的概念 , Redis集群有16384个哈希槽 , 每个key通过CRC16校验后对16384取模来决定放置哪个槽 , 集群的每个节点负责一部分hash槽 。
推荐阅读
- 彻底理解Linux 进程调度所有知识点
- 整理的一些在使用Python中常用网页字符串处理方法
- Nginx配置知识点梳理
- 普洱茶科普扫盲,茶知识扫盲
- redis实现分布式锁天然的缺陷
- DockeFIile知识点总结和发布自己的镜像
- 窥探Tomcat整体架构,server.xml常用配置解析
- 法律知识|饮料界的常青藤:备受争议的椰树牌椰汁为什么能火34年?
- 西府海棠,你不知道的小知识
- 十大茉莉花茶排名,中国十大名茶及关知识
