主从复制
使用一台机器模拟Redis的主从复制
概念
一般来说,要将Redis运用于工程项目中,只使用一台Redis是万万不能的,原因如下:
从结构上,单个Redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大;
从容量上,单个Redis服务器内存容量有限,就算一台Redis服务器内容容量为256G,也不能将所有内容用作Redis存储内存,一般来说,单台Redis最大使用内存不应该超过20G。
场景:
电子商务网站上的商品,一般都是一次上传,无数次浏览的,说专业点也就是"多读少写"。 对于这种场景,我们可以使如下这种架构。
如图所示:
将一台Redis服务器作主库(Matser),其他三台作为从库(Slave),主库只负责写数据,每次有数据更新 都将更新的数据同步到它所有的从库,而从库只负责读数据。 好处:
读写分离,不仅可以提高服务器的负载能力并且可以根据读请求的规模自由增加或者减少从库的数量棒极了;
数据被复制成了了好几份,就算有一台机器出现故障,也可以使用其他机器的数据快速恢复。 需要注意的是:在Redis主从模式中,一台主库可以拥有多个从库,但是一个从库只能隶属于一个主库。
特点:
1、Master可以拥有多个slave; 2、多个salve可以连接同一个Master,还可以连接到其他的slave 3、主从复制不会阻塞Master,在同步数据时,master可以继续处理client请求 4、提供系统的伸缩性。
配置:
在Redis中,要实现主从复制架构非常简单,只需要在从数据库的配置文件中加上如下命令即可: slaveof 主数据库地址 主数据库端口 主数据库不需要任何配置。
配置步骤: 1、copy一份redisde conf 文件作为从库的配置文件,拷贝redis.conf并修改
端口号为6380 设置slaveof主库ip地址端口号 设置masterauth主库密码
解决单机故障问题
能够解决单机故障问题,数据依然能恢复,但是当主挂了,则缓存不可用。
哨兵模式
当主挂了,哨兵监测到,默认30秒完成从从中选取新的主,短暂不可写。