Redis主从复制原理及注意事项

主从复制特点

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点.具有以下特点:

1.异步复制,从2.8版本开始的。

2.允许单个master配置多个slave

3.允许master -> slave -> slave 模式

4.master在进行replication时是非阻塞的,在replication期间,master依然能够处理客户端的请求。

5.slave在replication期间也是非阻塞的,也可以接受来自客户端的请求,但是它用的是之前的旧数据。可以通过配置来决定slave是否在进行replication时用旧数据响应客户端的请求,如果配置为否,那么slave将会返回一个错误消息给客户端。不过当新的数据接收完全后,必须将新数据与旧数据替换,即删除旧数据,在替换数据的这个时间窗口内,slave将会拒绝客户端的请求和连接。

6.一般使用replication来可以实现扩展性,例如说,可以将多个slave配置为只读,或者是纯粹的数据冗余备份。

7.能够通过replication来避免master每次持久化时都将整个数据集持久化到硬盘中。只需把master配置为不进行持久化操作(把配置文件中持久化相关的配置项注释掉即可),然后连接上一个slave,这个slave则被配置持久化选项。

主从复制的作用

数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。

故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。

负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

高可用基石:主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

实现主从复制方法

方法一:命令行

redis> slaveof master_ip master port

取消复制:redis> slaveof no one

取消复制后重新做另一个实例的从时会先清掉数据,然后重新生成。

方法二:写入文件配置

slaveof ip port

masterauth 主节点密码

slave-read-only yes ##从节点只能进行读的操作。

replication工作原理(全量复制)

同步过程:<

你可能感兴趣的:(数据库,java,服务器)