程序员,贵在坚持

redis哨兵集群搭建

下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下

解压 命令:tar -zxvf redis-4.0.11.tar.gz

 

 解压后如图所示

 

 在/usr/local目录下创建redis_sentinel文件夹

 

 将/data/redis目录下解压后的redis文件夹移动到/usr/local/redis_sentinel目录下,命令 mv /data/redis/redis-4.0.11 /usr/local/redis_sentinel/

 在/usr/local/redis_sentinel目录下创建6379 6380 6381 sentinel_server四个文件夹,命令 mkdir 6379 6380 6381 sentinel_server

 

 进入到redis-4.0.11目录下,命令 make all

 

 将redis-4.0.11/redis.conf文件分别拷贝到6379 6380 6381的目录下,将redis-4.0.11/sentinel.conf文件拷贝到sentinel_server的目录下如下图所示

 

 我们将6379作为主服务,编辑6379下的redis.conf文件

daemonize 设置为 yes

protected-mode  设置为no 如果不设置为no,web服务是连接不上的

 

 注释掉bind ip地址,或者设置为0.0.0.0否则远程连接是访问不了的

 

 编辑6380下的redis.conf文件

daemonize 设置为 yes;protected-mode  设置为no;注释掉bind ip地址(这三步同上);

另外修改 port为6380

设置当前节点的主节点 slaveof 127.0.0.1 6379

 

 编辑6381下的redis.conf文件

daemonize 设置为 yes;protected-mode  设置为no;注释掉bind ip地址(这三步同上);

另外修改 port为6381

设置当前节点的主节点 slaveof 127.0.0.1 6379sentinel monitor mymaster 127.0.0.1 6379 1

编辑sentinel_server下的sentinel.conf文件

设置sentinel monitor mymaster 127.0.0.1 6379 1 (mymaster可以随意取,但是下面的需要跟这里一致;如果要在web程序中使用,127.0.0.1必须改为对应的ip地址,否则会连不上)

 

 设置sentinel down-after-milliseconds mymaster 10000 也可以默认不变

 添加 daemonize yes

 

这里默认不变

 

 

设置 failover-timeout mymaster 60000

 

 

 启动 6379 6380 6381三个节点服务,如下图所示

 

 启动sentinel服务

 

 进入6379节点,显示为 主节点;设置aaa 为 111,并且能获取成功

 

 进入6380节点,显示为从节点,可以成功获取aaa的值,但是不能添加值,这就是redis读写分离

 

进入6381节点,同6380节点一样

 

 

 现在我们尝试将6379节点shutdown

 

 我们在进入6380节点,发现master已经变成6381节点了

 

 进入6381节点,如下图所示

 

 我们发现 6381节点确实变成主节点,而且可以设置新的值;这就是redis哨兵集群,当主节点down掉之后,会在从节点中选一个作为新的主节点

posted on 2019-11-24 18:53  程序员,贵在坚持  阅读(988)  评论(0编辑  收藏  举报

导航