centos 7安装redis并且配置主从复制和哨兵模式。一主二从三哨兵

提示:在搭建redis主从复制和哨兵模式,先学会搭建单个redis

搭建单个redis 可以参照博客:https://blog.csdn.net/weixin_42338444/article/details/99708038

1. VMware准备三台虚拟机(不会安装的自行百度,再次不做赘述),我的配置如图。三台虚拟机(centos 7),IP分别为192.168.74.129,192.168.74.130,192.168.74.131,其中129作为master(主服务器)。130和131为slave(从服务器)。主服务器可以读写,从服务器只读不能写

2. 分别在三台主机上安装redis,安装过程可以参考上面步骤,安装之后按照以下步骤进行

3. 主从集群配置

3.1 修改主机文件redis.conf

vi /opt/redis/redis-5.0.3/redis.conf

以下是文件内容的修改

#是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件。  
daemonize no  -->   daemonize yes 

#日志文件路径  
logfile /var/log/redis/redis.log

#redis版本低
#主从服务器的地址和端口。例如:slaveof 192.168.1.1 6379 如果是主服务器不需要开启此项
#slaveof <masterip> <masterport>
#redis版本高
#主从服务器的地址和端口。例如:replicaof 192.168.1.1 6379 如果是主服务器不需要开启此项
# replicaof <masterip> <masterport>

# 把保护模式设置为no,如果这里是yes,那么修改为no
protected-mode no 

#从服务器只读选项,默认是yes,只读模式  
slave-read-only no

#服务器密码:如果主服务设置了密码,从服务需要配置masterauth这个选项  
requirepass 123456

#主服务访问密码:从服务器设置,主服务器不需要设置  
# masterauth <master-password> 

cluster-enabled no

3.2 修改从机 redis.conf ,另一台从机配置一样的配置

vi /opt/redis/redis-5.0.3/redis.conf

以下是文件内容的修改

#是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件。  
daemonize no  -->   daemonize yes 
 
#日志文件路径  
logfile /var/log/redis/redis.log

#redis版本低
#主从服务器的地址和端口。例如:slaveof 192.168.1.1 6379 如果是主服务器不需要开启此项
slaveof 192.168.74.129 6379
#redis版本高
#主从服务器的地址和端口。例如:replicaof 192.168.1.1 6379 如果是主服务器不需要开启此项
replicaof 192.168.74.129 6379

# 把保护模式设置为no,如果这里是yes,那么修改为no
protected-mode no 

#从服务器只读选项,默认是yes,只读模式  
slave-read-only no

#服务器密码:如果主服务设置了密码,从服务需要配置masterauth 这个选项,从服务器也可以设置自己的密码  
requirepass 67890

#主服务访问密码:从服务器设置,主服务器不需要设置  
masterauth 123456

4. 然后记得修改主从防火墙或者关闭防火墙

5. 启动主从服务器:先启动主服务器,在启动从服务器

5.1 测试主从是否连接

[root@localhost redis]# redis-cli

#如果上面命令找不到情况,相当于在/usr/bin/创建一个快捷键
ln -s /opt/redis/redis-5.0.3/src/redis-cli /usr/bin/redis-cli

#登录redis客户端输入密码
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> info

#如果出现一下类似信息主机连接成功
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.74.130,port=6379,state=online,offset=3542,lag=1
master_replid:d53eac5645191c35cb69e82c33b882f08ba43e30
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3542
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3542

# CPU
used_cpu_sys:4.012400
used_cpu_user:2.732725
used_cpu_sys_children:0.030838
used_cpu_user_children:0.000000

5.2 从机测试

[root@localhost redis]# redis-cli

#如果上面命令找不到情况,相当于在/usr/bin/创建一个快捷键
ln -s /opt/redis/redis-5.0.3/src/redis-cli /usr/bin/redis-cli

#登录redis客户端输入密码
127.0.0.1:6379> auth 67890
OK
127.0.0.1:6379> info

#如果出现一下信息,从机连接成功
# Replication
role:slave
master_host:192.168.74.129
master_port:6379
#这说明主服务状态正在运行,这里如果为down,那可能是主机的防火墙的原因
master_link_status:up 
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:3822
slave_priority:100
slave_read_only:0
connected_slaves:0
master_replid:d53eac5645191c35cb69e82c33b882f08ba43e30
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3822
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3822

redis的主从复制已经搭建完成

6. 哨兵 其实哨兵也就是一个进程,用来监视这个redis集群。这里遵从一主二从三哨兵模式。这里有三台主机192.168.74.129,192.168.74.130,192.168.74.131,可以在这上面分别启动一个哨兵进程。注意:哨兵进程和redis进程没有关系,可以在一台主机上面启动。三个哨兵监控这个redis集群,如果主服务器挂了,那么三个哨兵就从从服务器里选一台作为主服务器,选举机制一会在配置文件里面表明。

6.1 分别在三台主机上做一下操作

#把redis安装下的哨兵配置文件复制到/etc/redis/文件下
cp /opt/redis/redis-5.0.3/sentinel.conf /etc/redis/sentinel.conf

#编辑/etc/redis/sentinel.conf文件
vi /etc/redis/sentinel.conf

以下为编辑/etc/redis/sentinel.conf内容

protected-mode no  #关闭保护模式

port 26379  #端口号

dir /tmp   #目录

sentinel parallel-syncs mymaster 1    #故障迁移的时候,复制的从服务器的个数

sentinel failover-timeout mymaster 180000  #故障迁移所需时间,也就是主服务器挂了之后,选举新服务器的时间,如果这个时间还没能选举出来,那么就算选举失败

sentinel deny-scripts-reconfig yes

sentinel monitor mymaster 192.168.74.129 6379 2 #这个是指哨兵监视哪个redis集群,这里监视的是192.168.124.20,6379是端口号,最后的2表示,如果主服务器挂了,3个哨兵中有2个投票选新的服务器,那么就可以进行故障迁移,选出了新的服务器

sentinel down-after-milliseconds mymaster 3000  #sentinel认为“主线下线”的一个阀值。

7. 挨个启动哨兵模式,哨兵之间也是相互监控的

redis-server /etc/redis/sentinel.conf --sentinel &

8. 这是,哨兵模式就已经启动了,这时候就可以监视redis集群了,如果主服务器挂了之后就可进行故障转移了,现在模拟主服务器挂掉,在129上执行,手动挂掉主服务器,可以查看日志看到,+switch,选了一个新的主服务器

redis-cli shutdown

#如果上面命令报错一下错误信息,有密码需要登录
[root@localhost redis-5.0.3]# redis-cli shutdown
(error) NOAUTH Authentication required.

#按照下面步骤
[root@localhost redis-5.0.3]# redis-cli
127.0.0.1:6379> auth "123456"
OK
127.0.0.1:6379> shutdown
not connected> 

参照:https://www.cnblogs.com/bxssjava/p/9992492.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值