在云主机上部署Redis集群
1,安装redis
wget http://download.redis.io/releases/redis-4.0.0.tar.gz 下载安装包,4.0.0版本的 tar -xvf redis-4.0.0.tar.gz 解压 cd redis-4.0.0 进入文件夹 make install 编译并安装,默认安装在redis-4.0.0/src目录下
2,修改redis配置文件
vim redis.config
将daemonize 改为yes,可以在后台运行
将bing 127.0.0.1注释
将protectmode改为no 否则不能在远程访问
3,以配置文件的方式启动redis
redis-server /root/redis-4.0.0/redis.conf
4,将配置文件拷贝2份,用于启动另外两个实例,作为从主机
cp redis.config redis_1.config
cp redis.config redis_2.config
并修改两个拷贝副本的port
加上slaveof 主节点ip 端口 绑定主节点
5,分别用两个配置文件启动两个实例
redis-server /root/redis-4.0.0/redis_1.config redis-server /root/redis-4.0.0/redis_2.config [root@iZ8vb5css44dyu3rxq22isZ src]# ps -ef|grep redis 查看进程,启动成功 root 18261 18238 0 10:16 pts/0 00:00:00 redis-cli root 18320 1 0 10:29 ? 00:00:01 redis-server *:6379 root 18506 1 0 11:24 ? 00:00:00 redis-server *:6380 root 18512 1 0 11:25 ? 00:00:00 redis-server *:6381 root 18517 18427 0 11:25 pts/1 00:00:00 grep --color=auto redis
至此,主从复制结构就已经搭建好了。可以让多个主机分担访问压力。但并不是高可用的。
6,实现高可用,哨兵机制。
sentinel在redis的安装包中就有了,我们需要修改sentinel.config配置文件
添加以下内容,如有默认的相同配置,注释掉即可 bind 0.0.0.0 #外网可以访问 sentinel monitor mymaster 39.101.191.209 6379 1 #为主节点起别名mymaster,绑定端口,最后的1为判断主节点是否失效需要几个sentinel同意,现在只有一个哨兵,就为1 sentinel down-after-milliseconds mymaster 10000 #sentiinel判断节点下线的延时时间 sentinel failover-timeout mymaster 60000 #设置故障转移的过期时间,过期故障转移失败。 sentinel parallel-syncs mymaster 1 #进行故障转移时,最多可以有多少个从服务器同时从新的主服务器同步数据,数字越小,同时同步的从服务器越少,故障转移的>时间就越长。
7,使用配置开启哨兵进程
redis-sentinel /root/redis-4.0.0/sentinel_1.conf
至此,哨兵机制就搭建完成了,后续可以通过多个节点测试哨兵机制是否达到理想效果。