Redis集群搭建-哨兵(sentinel)模式
(1)三个sentinel服务
(2)一主三从,即四个Redis服务
建议先查看《Redis集群搭建-主从模式》
一、哨兵模式搭建步骤
(1)拷贝三个redis服务作为sentinel服务
(2)分别修改sentinel01、sentinel02、sentinel03中的sentinel.conf配置
①修改sentinel.conf
不同于普通的redis服务使用的redis.conf配置,sentinel服务使用的是sentinel.conf配置。
②修改端口号配置
因为同样将sentinel的三个服务放在了同一个服务器上,所以服务的端口号不能相同。(sentinel01的端口号:26371;sentinel02的端口号:26372;sentinel03的端口号:26373)
③配置redis服务的主服务地址与端口号
sentinel01、sentinel02、sentinel03此项配置相同。
格式:sentinel monitor 主服务名称 主服务IP地址 主服务端口号 投票数
mater:6371 主服务名称,自定义。不能使用特殊字符或空格
127.0.0.1 主服务的IP。配置主服务器所在的IP地址。
6371 主服务的端口号。
2 投票数,当至少2台sentinel服务判定redis主服务已经不可用了,则开始从从服务器中选举一个服务作为主服务,维护主从集群的可用性。 配置的数目一般为sentinel服务的个数整除以2+1。(因为我使用3台sentinel服务,则3/2+1=2)
④更改其他配置的主服务名称
因为在③处修改了默认配置的主服务名称,所以配置中其他处的主服务名称要与此保持一致。(为了避免修改的麻烦,可以使用默认的主服务名称mymaster)
(3)启动redis的四台服务,以及三台sentinel服务。
启动sentinel服务:
启动sentinel除了使用redis-server外,还可以使用redis-sentinel:
运行./redis-sentinel:
查看当前服务运行的redis服务:
二、sentinel故障转移
(1)停止redis主服务(端口号为6371的服务)
(2)使用客户端连接redis02(端口号为6372的服务)
使用INFO命令查看服务信息,可见redis02服务已经变成了主服务,从服务为redis03与redis04。
(3)重启redis01服务
redis01会作为此时的主服务redis04的从服务。(主服务又变成了redis04服务,可能在操作期间sentinel认为redis02服务已经下线,又重新进行了主服务选举)
(4)使用客户端连接redis01,查看INFO信息
三、sentinel.conf配置
- port
配置sentinel服务的端口号。默认值:26379。
- daemonize
服务是否后台启动,yes:后台启动,no:非后台启动。默认值:no。
- pidfile
pid的文件,文件中配置服务的唯一id。默认值:/var/run/redis-sentinel.pid。当daemonize配置成true后台启动时,redis服务会将pid写进配置的文件中。
- logfile
配置日志文件。当后台模式启动时,redis服务会将日志写到此路径的文件中。非后台启动,会将日志输出到标准输出(屏幕或控制台)。空字符串表示日志输出到标准输出。默认值:””
- dir
工作目录。
- sentinel monitor
配置sentinel监听的redis server的主服务。
- sentinel down-after-milliseconds
sentinel服务判定主服务主观下线的时间。当在设置的毫秒数时间内,主服务或其从服务没有正常响应sentinel的通信(PING),则sentinel会将主服务或其从服务设置成主观下线。
- sentinel parallel-syncs
主服务同时可以与几个从服务进行数据同步。Redis服务存在主从复制的机制,将主服务的数据同步到从服务中以此来保证数据的一致性。
还没有评论,来说两句吧...