目录
1.服务器环境
系统版本:Red Hat Enterprise Linux Server release 6.8
2.Redis服务器概况
redis官网:https://redis.io/
服务器上已安装了Redis,但是没有配置高可用。
redis_6379-6382目录是本机4个redis的安装目录,这4个现在都是master,software是redis的解压目录。
3.Redis高可用
本机准备做1主3从模式的高可用。但由于redis目前只支持主从复制备份(不支持主主复制),当主redis挂了,从redis只能提供读服务,无法提供写服务。所以,还需要自动故障转移,redis sentinel带有这个功能,当一个主redis不能提供服务时,redis sentinel可以将一个从redis升级为主redis,并对其他从redis进行配置,让它们使用新的主redis进行复制备份。
1)复制配置文件
切至Redis的解压目录
cd software/redis-3.2.8
复制redis.conf、sentinel.conf至各个安装目录的conf目录下
在此只写一个样例
cp sentinel.conf /home/XX/redis_6379/conf
cp redis.conf /home/XX/redis_6379/conf
修改之前备份
cd /home/XX/redis_6379/conf
cp redis.conf redis.conf.20180804.bak
2)修改redis.conf
vim redis.conf
将bind 127.0.0.1改为bind 0.0.0.0
将protected-mode yes改为protected-mode no(保护模式)
将daemonize no改为daemonize yes (后台模式)
将logfile ""改为logfile "/var/log/redis.log"(按需修改)
从机上多添加一行
slaveof 主机ip 6379
3)修改sentinel.conf文件
vim sentinel.conf
将sentinel monitor mymaster 127.0.0.1 6379 2
修改为sentinel monitor mymaster 主机ip 6379 2 (主redis的IP和端口)
添加以下几行:
daemonize yes
protected-mode no
logfile "/var/log/sentinel.log"(按需修改)
4)启动redis和sentinel
进入Redis安装目录的bin目录,执行命令:
./redis-server ../conf/redis.conf
./redis-sentinel ../conf/sentinel.conf
./redis-cli
分别启动redis6379/6380/6381/6382
退出redis-cli,命令:
quit
切换端口
./redis-cli -p 6381(根据实际端口填写)
在启动redis-cli后,输入命令:
info replication
查看Redis信息,包括角色、连接的从机等信息
5)配置redis信息
应用启动时可指定yml文件,yml文件中关于redis的配置为
spring:
# cache:
# type: redis
# redis:
# host: xx
# port: 6379
redis:
sentinel:
master: mymaster
nodes: xx:26379,xx:26380,xx:26381