Redis主从复制
是什么
主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。
-
读写分离,性能扩展
-
容灾快速恢复

创建过程
-
创建/myredis文件夹
-
复制redis.conf配置文件到文件夹中
-
配置一主两从,创建三个配置文件
redis6379.conf
redis6380.conf
redis6381.conf
-
在三个配置文件写入内容
include /myredis/redis.conf pidfile /var/run/redis_6379.conf port 6379 dbfilename dump6379.rdb -
启动三个redis服务
查看当前主机运行状况 info replication
在从机上执行 slaveof 主机ip 端口号 ,可以指定主机


以上步骤就创建了一主两从,主服务器用来写数据,从服务器用来读数据
主从复制的原理
-
当从服务器连接上主服务器之后,从服务器向主服务器发送数据同步消息。
-
主服务器接到从服务器发送过来的同步消息,把主服务器数据进行持久化为rdb文件,把rdb文件发送到从服务器中,从服务器拿到rdb文件进行读取。
-
每次主服务器进行写操作之后,就和从服务器进行数据同步。
一主二从
-
当从服务器down之后,重新启动会变为主服务器。可以选择重新添加为从服务器,在这期间主服务器添加的数据,从服务器会全部添加进来。
-
当主服务器down之后,从服务器还是存在,只是
info replication显示主服务器已经down,主服务器重新启动后,这两台服务器仍然是主服务器的从服务器。
哨兵模式(sentinel)
是什么
反客为主的自动版,能够后台监控主机是否故障。如果故障了根据投票数自动将从库转换为主库。
使用步骤
-
设置哨兵,填写内容
sentinel monitor mymaster 127.0.0.1 6379 1其中,mymaster 为监控对象起的服务器名称,1为至少有多少个哨兵同意迁移的数量
-
执行
redis-sentinel /myredis/sentinel.conf

-
当主机down掉,会在从机中选择新的主机,该如何选择呢?
-
选择优先级靠前的
slave-priority 100新版本的为replica-priority 100数字小的优先级高 -
选择偏移量最大的 偏移量指获得主机数据最全的
-
选择runnid最小的从服务器 runid 每个redis实例启动后都会随机生成一个40位的runid
-
缺点
浙公网安备 33010602011771号