Redis主从复制

主从复制,就是主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主

主从复制的好处:读写分离,性能扩展, 容灾快速恢复

一般来说,要将Redis运用于工程项目中,只使用一台redis是万万不能的,原因如下:

  1. 从结构上,单个Redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大;
  2. 从容量上,单个Redis服务器内存容量有限,就算一台Redis服务器内容容量为256G,也不能将所有内容用作Redis存储内存,一般来说,单台Redis最大使用内存不应该超过256G。

这里暂只讨论第一点的解决方案:Redis主从复制,第二点可以使用Redis集群解决

Redis支持将数据同步到多台slave上,这种特性对提高读取性能非常有益

  1. master可以有多台slave
  2. 除了多个slave连到相同master外,slave也可以连接到其它slave形成图状结构
  3. 主从复制不会阻塞master,也就是说当一个或多个slave与master连接进行复制时,master可以继续处理客户端发来的请求,相反slave在初次同步数据时则会阻塞,不能处理客户端请求
  4. 主从复制可以用来提高系统的伸缩性,我们可以用多个slave专门负责客户端的读请求,可以做数据冗余
  5. 可以在master禁用数据持久化,只需要注释掉master配置文件redis.conf的save配置,然后只在slave配置持久化

电子商务网站上的商品,一般都是一次上传,无数次浏览的,说专业点也就是“多读少写”。

对于这种场景,我们可以使下图中的这种架构。

如下图中所示,我们将一台Redis服务器作主库(Matser),其他三台作为从库(Slave),主库只负责写数据,每次有数据更新都将更新的数据同步到它所有的从库,而从库只负责读数据。这样一来,就有了两个好处:

  1. 读写分离,不仅可以提高服务器的负载能力,并且可以根据读请求的规模自由增加或者减少从库的数量
  2. 数据被复制成了了好几份,就算有一台机器出现故障,也可以使用其他机器的数据快速恢复。

你可能感兴趣的:(redis,数据库,缓存)