您的位置:首页 > 数据库 > Redis

redis主从复制自动切换

2017-04-27 12:21 417 查看
redis主从复制特点

1一个master可以拥有多个slave

2多个slave链接同一个master,也可以链接其它slave

3主从复制不会阻塞master,在同步数据时,master可以继续处理client请求

4提供系统的伸缩性

主从复制过程:

slave与master建立链接,发送sync同步命令

2master会开启一个后台进程,将数据库数据保存到文件中,同事master主进程会开始收集新的写命令并缓存

3.后台完成保存后就将文件发送给slave

4slave将此文件保存到硬盘上

搭建主从同步:

两台centos虚拟机已经安装好了redis(安装教程参照:http://blog.csdn.net/sunqingzhong44/article/details/70761670)

redis 安装目录/usr/local/下的redis

redis 源码目录/home/下的redis

两台虚拟机分别为192.168.1.233和 192.168.1.234

用233作为主,234作为从

1.修改从库234配置文件

进入/usr/local/reids/ 修改redis.cnf 修改下面各项

slaveof 192.168.1.233 6379

masterauth <password> #如果主库有密码则需要,负责不需要

2.主从配置成功了,我们启动从库,主库,链接主库,输入info命令,打印出的信息可以找到如下信息,说明成功



3.哨兵

有了主从复制,我们想对主从进行监控,主数据库出现问题时从转化为主数据库,实现自动切换。

Redis 的 Sentinel(哨兵) 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:

监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。

提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。

自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。

虽然 Redis Sentinel 释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器, 你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动 Redis Sentinel。

哨兵可以单独搭建在一台服务上,我这里就直接搭建在233上面

从源码包中复制sentinel.conf 到/usr/local/redis/etc/下



修改一下各项配置 

dir /usr/local/redis/etc

sentinel monitor mymaster 192.168.1.121 6379 1

sentinel down-after-milliseconds mymaster 5000 多久检测一次

sentinel failover-timeout mymaster 900000

sentinel parallel-syncs my mymaster 1  从节点数量

4.启动哨兵

bin/redis-server  etc/sentinel.conf --sentinel &  #启动哨兵



bin/redis-cli -h 192.168.1.1  -p26379   info sentinel   查看哨兵信息



测试  shutdown主节点,通过下面信息可以看出主节点切换到了234



再启动233节点,可以看到233又加入了主从,变成了从节点:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: