redis主从复制的三种方式

redis主从复制的三种方式

    基础的就不讲了…配置复制的三种方式:

1. 在配置文件中加入slaveof{masterHost}{masterPort}随着redis的启动生效。
2.在redis-server启动命令之后加入--slaveof{masterHost}{masterPort}生效。
3.直接使用命令:slaveof{masterHost}{masterPort}生效。

    下面我们就使用第三种最简单的方式来创建redis集群吧。我们在同一台机器上模拟创建一个redis集群。首先复制一下redis文件夹
redis主从复制的三种方式_第1张图片

    然后修改复制之后的redis(也就是从机)修改端口号为6380。

redis主从复制的三种方式_第2张图片

    启动主从两台机器。可以通过ps命令查询是否启动成功。
redis主从复制的三种方式_第3张图片

    访问从机客户端,使用slaveof命令关键主机。

redis主从复制的三种方式_第4张图片

    同时启动主从两个客户端。加以验证。

redis主从复制的三种方式_第5张图片

    也可以使用info命令查看主从信息。

redis主从复制的三种方式_第6张图片

断开复制

    其实非常简单。在从节点使用slaveof no one命令就可以断开主从复制关系。需要注意的是从节点断开复制后并不会抛弃原来的数据。只是无法再获取主节点上的数据变化。

    通过slaveof命令还可以实现切换主的操作。使用slaveof{newMasterIP}{newMasterPost}命令就行。

安全性

    一般情况下主节点会设置requirepass参数进行密码验证。这个时候需要丛节点也配置相同的密码才能正确的连接到主节点并发起复制流程。其实这个问题也是看情况,如果是放在云上的机器可以通过设置密码的方法。我其实遇到过好几次redis在云服务器上被拿去挖矿的经历。如果公司内部有本地机房,所有的请求走内网访问,这个时候redis其实可以不设置密码。所以看情况分析吧。

只读

    其实所有的关于数据库基本上都是实现主从同步,读写分离。mysql的主从同步是基于log文件实现的。redis的主从同步是通过快照的方式实现的(具体内容在之后会讲到)。读写分离就是写走主库,读走从库。redis配置也很简单,设置slave-read-only=yes配置就行。

传输延迟

    redis为我们提供了repl-disable-tcp-nodelay参数用于控制是否关闭TCP-NODELAY。默认是关闭。以下是说明:

1.当关闭的时候,主节点产生的命令数据无论大小都会发送给从节点。适合于同机或者是同机房部署。
2.当开启时候,主节点会合并较小的TCP数据从而节省带宽。默认发送时间间隔取决于Linux内核。

你可能感兴趣的:(redis)