主从复制,读写分离
一般读的操作都在从机,写的操作在主机,
info replication 查看当前库的信息
最少要一主二从,后台文件都需要改需要三个配置文件,三个端口,dump文件要改,日志文件现在不能为空了,需要对应,pidfile文件需要修改。设置79,80,81三台服务器
默认情况下,每个redis服务器都是主机,我们一般只需要配置从机就行了。
所以我们现在配置后面两台80,81
slaveof 127.0.0.1 6379 这就配置好了一台从机,另一台也这么配置
此时我们去主机看一下
info replication
这种配置是暂时的,永久配置要去修改配置文件
文件配置主从
配置文件下有replication这一部分
主机可以写,从机只能读不能写。主机中的所有信息都会被从机复制保存
自己测试一下,在主机和从机读和写会报什么错误
当我们没有配置哨兵的时候,如果主机宕机了,默认情况下,从机还是依然是连接到主机的,但是因为主机断了,没有办法写入了,只能读,不会自动成为一个主机。如果主机重新连接回来,我们还是可以拿到主机新加的数据。这在一定程度维护了高可用
如果使用命令行配置的主从,如果重启就会变为主机,若变成从机,就会立刻从主机中获取值
复制原理
全量复制,在第一次连接主机的时候,会把所有的数据都复制过来
增量复制,在连接过程中,主机新增了数据,那么会把新的数据复制过来。
如果主机断开连接,我们可以使用下面的命令使自己变成主机,其他的节点就可以手动连接过来,但是注意,都是手动改的
slaveof no one
哨兵模式
哨兵模式是主从里非常重要的
自动选择主机的模式,其实上面的手动改主机就是哨兵模式的原理
只有一个哨兵,可能存在问题,所以一般是采用多哨兵模式
主观下线,客观下线
在多哨兵的情况下,如果有一个哨兵检测到主机不可用,那么不会马上进行投票重新选主机,只有当达到多个哨兵都检测到主机不可用,才会发起投票,重新选择主机
哨兵配置文件,sentinel.conf
sentinel monitor myredis 127.0.0.1 6379 1
#sentinel monitor 被监控的名字,随意填 主机地址 端口 1,表示启动投票
这是最最基本的配置
哨兵这里有一个投票的算法
优点:
1哨兵集群,基于主从复制的模式,所有主从的优点,他都有
2主从可以切换,故障可以转移,系统的可用性更好
3哨兵就是主从的升级,从手动到自动
缺点:
1redis不好在线扩容,集群容量一旦达到上限就很麻烦
2实现哨兵模式是很麻烦的,里面有很多选择,上面只是最最基本的
看看哨兵模式的全部配置