redis我用的版本是4.0.6,安装就不说了,下面开始讲部署主从集群。

我们当前配置的master主机。

1.修改/etc/hosts文件



vim /et/hosts
#新增几个主机名,方便操作
192.168.10.130  master
192.168.10.131  slave1
192.168.10.132  slave2
192.168.10.133  slave3



2.到redis目录



cd /redis
vim redis.conf
#修改几个参数(文件很长,可以用/x方式搜索)
daemonize  yes
bind  192.168.10.130
requirepass 123456



requirepass是给redis配置登录密码

3.修改主机名



hostnamectl  set-hostname master
#查看
hostname
#重新登录,可以看到已经改名了
exit



然后关机。

 

4.克隆机器slave1

右键master,选择管理-》克隆,然后下一步,点击完整克隆,就一直点下一步,克隆好后关闭。

 

5.配置slave1机器



hostnamectl  set-hostname master
#查看
hostname



#修改ip



vim /etc/sysconfig/network-scripts/ifcfg-ens33 
IPADDR=192.168.10.131
#重启网卡



systemctl restart network



cd redis
vim redis.conf
#修改几个参数(前面3个参数只需要修改bind就行,其他因为是克隆的,所以已经修改。文件很长,可以用/x方式搜索)
daemonize  yes
bind  192.168.10.131
requirepass 123456
masterauth 123456
slaveof  192.168.10.130 8000



 

ok.

 

6。以slave1克隆slave2-192.168.10.132,slave3-192.168.10.133,

这两个机子仅需修改hostname和redis.conf里面的bind参数

 

7.各个机子启动redis

a.master



cd redis/bin
./redis-server ../redis-conf
./redis-cli -h 192.168.10.130 -a 123456
set name leifeng
get name



设置一个name

b.slave1



cd redis/bin



./redis-server ../redis-conf
./redis-cli -h 192.168.10.131 -a 123456
get name



如果得到name为"leifeng"

就说明主从集群配置成功了。

进入命令行,执行info replication查看当前主从配置

 

8.配置sentinel(哨兵)模式

以上配置完毕后,虽然可以实现主从复制,读写分离,但是如果主机挂掉,那整个项目就挂了。而sentinel就可以防止这个情况。

先配置master机器



#端口可以不改,我这里是改成6800
port 6800
daemonize yes
logfile "/var/log/sentinel.log"
#master机器 后面数字代表:如果这台机子down掉,则有2个sentinel节点投票挂掉,就确认为挂掉
sentinel monitor master 192.168.10.130 6379 2
sentinel down-after-milliseconds master 5000
sentinel parallel-syncs master 1
#配置15秒无返回或返回错误就判断机器挂掉
sentinel failover-timeout master 15000
#当前的机子最小奴隶机数为1 如果这台主机挂掉,重新选举了主机,当重启后,根据这个判断,就不会重新变成mater机器
min-slaves-to-write 1
min-slaves-max-lag 10



master机子改了之后,可以复制到其他机器,基本不用修改了

然后先启动mater机子的sentinel,再启动其他slave机器



cd redis/bin
./redis-sentinel ../sentinel.conf

#然后开另一个窗口,登录查看是否成功
./redis-cli -h 192.168.10.130 -a 123456
info sentinel



如果有返回sentinel机器信息就说明成功了。

可以把mater机器关掉,再调用命令

info sentinel
查询哪一台机子是mater机器,然后写入数据测试。

能写数据,就说明已经改变成了master机器了。