Redis高级

孤街醉人 提交于 2019-11-28 23:07:54

Redis主从复制

概述

1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。

2、通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作。

 

主从复制过程:见下图

 

 

 

过程:

1:当一个从数据库启动时,会向主数据库发送sync命令,

2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来

3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。

4:从数据库收到后,会载入快照文件并执行收到的缓存的命令。

 

进行配置过程

 一主多从实现

  介绍:  主服务器可以读写,但是从服务器只允许读。

  场景:

  •  读写分离(读、写分别不同的库,增加整体的吞吐量)、
  • 日志备份、高可用读写分离问题:
  • 同步(redis自带解决方案)

 

Redis只能一个主,多个从:

 

 

过程(使用内网实现的通讯):

1、 从服务器启动时候,会向Master发送sync命令.从服务器是指向主服务器的IP和端口号。

2、当Master接收到sync命令后,会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来。(一旦在主服务器有任何写的操作,都会有快照文件记录)

3、当快照完成后,redis会将快照文件和所有缓存的命令发送给Slave。

 

修改slave从redis中的 redis.conf文件

slaveof  ip + 端口 masterauth 123456--- 主redis服务器配置了密码,则需要配置

 

直接服务器配置

 

 

  配置好了,启动主,再启动从。

 

结果验证:

 主服务器写入:

 

 

 从服务器可以读

 

 从服务器不可以写!

 

 

 

可以通过 info 查看标志:

信息一目了然

 

一个主 多个从的话 那就每个从都设置下 , 只能有一个主!!

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!