redis的主从复制

ip(主机名)服务
172.25.32.1(server1)master
172.25.32.2 (server2)slave
172.25.32.3 (server3)slave

redis的部署(以server1为例)
[root@server1 ~]# tar zxf *
[root@server1 ~]# ls
redis-5.0.3 redis-5.0.3.tar.gz
[root@server1 ~]# yum install -y gcc
[root@server1 ~]# cd redis-5.0.3
[root@server1 redis-5.0.3]# make && make install##编译
在这里插入图片描述

[root@server1 redis-5.0.3]# cd utils/
[root@server1 utils]# ls
[root@server1 utils]# ./install_server.sh ##安装

安装时所有选项选择默认项即可
在这里插入图片描述

主从复制

  • master端配置

1.修改master端的端口
默认为本机的回环地址,只能通过本机的客户端连接,我们需要对其进行修改
在这里插入图片描述
[root@server1 utils]# vi /etc/redis/6379.conf
70 bind 0.0.0.0
在这里插入图片描述
[root@server1 utils]# /etc/init.d/redis_6379 restart
在这里插入图片描述
再次查看端口,使其可以与任意主机进行连接

  • slave端配置(部署参考server1)
    [root@server2 utils]# vi /etc/redis/6379.conf
    1379 slaveof 172.25.32.1 6379
    在这里插入图片描述
    [root@server2 utils]# /etc/init.d/redis_6379 restart
    在这里插入图片描述
    server3同server2
  • 测试
    在server1端添加name为‘cheng’
    在这里插入图片描述
    在server2,server3端进行查看
    在这里插入图片描述
    在这里插入图片描述
    基于哨兵的redis主从切换
    1.编辑配置文件
    [root@server1 redis-5.0.3]# cp sentinel.conf /etc/redis/
    [root@server1 redis-5.0.3]# cd /etc/redis
    [root@server1 redis]# vi sentinel.conf
    17 protected-mode no##关闭保护模式
    84 sentinel monitor mymaster 172.25.32.1 6379 2##mymaster是定义的master名字,2指只有两台以上的节点投票通过才会确认master端挂掉从而推选新的master
    113 sentinel down-after-milliseconds mymaster 10000##连接超时时间,超过后会认为连接超时
    121 sentinel parallel-syncs mymaster 1##设定新master后,允许多少个主机进行同步
    146 sentinel failover-timeout mymaster 180000##推选master若超过该时间则认为转移失败

2.将配置文件分发给slave端
[root@server1 redis]# scp sentinel.conf server2:/etc/redis/
sentinel.conf 100% 9710 9.5KB/s 00:00
[root@server1 redis]# scp sentinel.conf server3:/etc/redis/
sentinel.conf 100% 9710 9.5KB/s 00:00
在这里插入图片描述
3.重启redis服务
[root@server2 ~]# /etc/init.d/redis_6379 restart
[root@server3 utils]# /etc/init.d/redis_6379 restart##重启server2与server3的redis服务

4.在server1查看节点信息
可以看到server1为master,server2与server3都为slave
在这里插入图片描述
在这里插入图片描述

  • 测试
    1.在任意一台机器执行下列命令查看结果
    [root@server1 redis]# redis-server /etc/redis/sentinel.conf --sentinel
    或者redis-sentinel /etc/redis/sentinel.conf &在这里插入图片描述
    15145:X 14 Aug 2019 14:42:51.868 # +monitor master mymaster 172.25.32.1 6379 quorum 2
    15145:X 14 Aug 2019 14:42:51.868 * +slave slave 172.25.32.2:6379 172.25.32.2 6379 @ mymaster 172.25.32.1 6379
    15145:X 14 Aug 2019 14:42:51.872 * +slave slave 172.25.32.3:6379 172.25.32.3 6379 @ mymaster 172.25.32.1 6379

可以看到当前的主节点为server1,从节点为server2与server3

2.关闭server1的redis服务
在这里插入图片描述
3.查看信息
15152:X 14 Aug 2019 15:20:45.319 # +sdown master mymaster 172.25.32.1 6379
与server1的连接段开

### Redis主从复制配置方法 #### Docker环境下的Redis主从复制设置 为了在Docker环境中成功配置Redis主从复制,需先理解基本概念以及具体的操作流程。 #### 基本概念解释 主从复制意味着将一台Redis服务器的数据同步至其他Redis实例。此过程涉及两个角色:一个是作为数据源的主节点(master),另一个是从主节点接收更新副本的从节点(slave)。这种架构允许读取负载均衡,并提供了一定程度上的冗余保障[^2]。 #### 创建网络连接以便容器间通信 确保所有参与复制的Redis服务能够相互通信至关重要。为此,建议创建专用的Docker网络来促进这些交互: ```bash docker network create redis-network ``` #### 启动主服务器 启动一个名为`redis-master`的服务端口映射到主机6379端口上,并将其加入之前建立好的自定义网络中去: ```bash docker run -d --name redis-master -p 6379:6379 --network redis-network redis ``` 这一步骤建立了整个集群的核心——即存储实际键值对的地方[^3]。 #### 修改配置文件支持远程访问 为了让后续添加的从机可以正常连通主机,需要调整默认不允许外部链接的安全策略。可以通过编辑已有的配置文件或者挂载新的配置文件方式完成这项工作。这里给出一种基于后者的方法示例: ```bash vim /home/docker/redis6379/conf/redis.conf ``` 在此文件内部找到有关绑定地址的部分(`bind`)取消其注释状态并将值设为空白表示接受来自任何地方请求;另外还需开启认证机制以增强安全性(如果适用的话)[^4]。 #### 添加并初始化第一个从属节点 现在准备就绪向系统引入首个辅助成员了。执行如下指令部署新实例同时指定它所依赖的目标对象名称为先前提到过的那个“master”。 ```bash docker run -d --name redis-slave1 --link redis-master:master \ --network redis-network \ -e REDIS_MASTER_HOST=master \ -e REDIS_MASTER_PORT=6379 \ -p 6380:6379 \ redis redis-server --slaveof master 6379 ``` 上述命令不仅完成了容器本身的创建工作还指定了必要的环境变量用于告知子进程应当追随哪台机器成为自己的上级领导单位。 #### 扩展更多跟随者 如果有需求进一步扩大规模只需重复上面的过程更改相应参数比如暴露不同对外监听接口即可轻松达成目的。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值