1. 搭建redis主从复制集群
操作系统:centos7
redis版本:5.0.3
服务器:主 192.168.137.160
服务器:从 192.168.137.161
redis存放目录: /opt/redis
在两台服务器之间做相同的以下操作:《《《《《《《《《《《《《《《《《《《《《
gcc离线安装参考gcc离线安装
安装gcc: yum install gcc
安装c++库:yum install glibc-headers yum install gcc-c++
解压: tar -zxvf redis-5.0.3.tar.gz
进入redis目录:cd redis-5.0.3/
编译:make
此时,如果报如下错误,则使用
make MALLOC=libc
修改配置文件 vim redis.conf (主)
(1)注释 bind 127.0.0.1,取消绑定本机IP
(2)取消保护模式 protected-mode yes 改为 protected-mode no
(3)守护进程:daemonize no 改为 daemonize yes
以上操作为两台服务器都相同的操作》》》》》》》》》》》》》》》》》》》》》》》》
(4)除上述操作外,修改从服务器的redis配置文件
在此处加上:replicaof 192.168.137.160 6379 主服务器ip和端口配置,如果有多台从服务器,则也是如下在从服务器中配主服务器的ip和端口。
(5) 启动
redis redis-server ../redis.conf
使用netstat -ntlp
命令查看是否启动,如下图所示
测试:,进入redis客户端, 在主服务器中
添加一个key
从服务器也可以看到
至此,redis主从复制模式搭建完成;
2、 使用redis哨兵实现高可用(1主2从3哨兵)
(1)服务器环境配置,基于1主从的配置
角色 | IP | 端口 | 别名 |
---|---|---|---|
master | 192.168.137.160 | 6379 | 主节点 |
slave-A | 192.168.137.161 | 6379 | 从节点 |
slave-B | 192.168.137.162 | 6379 | 从节点 |
sentinel-A | 192.168.137.160 | ||
sentinel-B | 192.168.137.161 | ||
sentinel-C | 192.168.137.162 |
(2)修改哨兵配置文件
打开配置文件 vim sentinel.conf
修改主节点ip,之后保存,其他几台也如此
分别启动redis,使用主从复制的方式测试是否启动成功,成功之后在启动哨兵:
redis-sentinel ../sentinel.conf --sentinel
测试redis哨兵高可用
查看进程 netstat -ntlp
kill -9 进程号,我们将主节点退出,查看主节点是否;切换即可
3、哨兵配置文件
sentinel monitor <master-name> <ip> <redis-port> <quorum>
告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效
sentinel auth-pass <master-name> <password>
设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。
sentinel down-after-milliseconds <master-name> <milliseconds>
这个配置项指定了需要多少失效时间,一个master才会被这个sentinel主观地认为是不可用的。 单位是毫秒,默认为30秒
sentinel parallel-syncs <master-name> <numslaves>
这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。
sentinel failover-timeout <master-name> <milliseconds>
failover-timeout 可以用在以下这些方面:
1. 同一个sentinel对同一个master两次failover之间的间隔时间。
2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。
3.当想要取消一个正在进行的failover所需要的时间。
4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即
评论列表