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机器了。