企业级Redis数据库高可用解决方案
背景:
最近比较火的Redis非关系数据,可基于内存亦可持久化的日志型、Key-Value数据库。由于服务器的内存管理能力有限,使用过大内存的Redis又会使得服务器的性能急剧下降,一旦服务器发生故障将会影响更大范围业务,集群功能还不适合生产环境的使用集群中超过半数的节点检测失效导致整个集群异常。
在实际特定的应用场景通过Redis的特性提高效率,那么效率与可考性应该如何来取舍。生产企业中大家更多的考虑可靠性,在次考虑效率。本文主要还是关注他的可靠性。
一、 Redis集群主备模式
master 接到指令后,开始启动后台保存进程保存数据,接着收集所有的数据修改指令。后台保存完了,master 就把这份数据发送给 slave,slave 先把数据保存到磁盘,然后把它加载到内存中,master 接着就把收集的数据修改指令一行一行的发给 slave,slave 接收到之后重新执行该指令,这样就实现了数据同步
1、 redis 使用异步复制
2、 一个 master 可以拥有多个 slave
3、 slave 可以接收来自其他 slave 的连接。意思是不是就是说 slave 在接收其他的slave的连接之后成为 master
4、 复制在 master 这一端是非阻塞的,也就是说在和 slave 同步数据的时候,master 仍然可以执行客户端的操作命令而不受其影响