Redis与分布式-哨兵模式


接上文 Redis与分布式-主从复制

1.哨兵模式

图片[1] - Redis与分布式-哨兵模式 - MaxSSL
图片[2] - Redis与分布式-哨兵模式 - MaxSSL
启动一个哨兵,只需要修改配置文件即可,

sentinel monitor lbwnb 1247.0.0.1 6001 1

先将所有服务关闭,然后修改配置文件,redis Master,redis Slave,redis Slave 2都是同样的修改方式
图片[3] - Redis与分布式-哨兵模式 - MaxSSL
图片[4] - Redis与分布式-哨兵模式 - MaxSSL
图片[5] - Redis与分布式-哨兵模式 - MaxSSL
图片[6] - Redis与分布式-哨兵模式 - MaxSSL
图片[7] - Redis与分布式-哨兵模式 - MaxSSL
启动哨兵图片[8] - Redis与分布式-哨兵模式 - MaxSSL
先关闭哨兵服务,开启6001、6002、6003服务后再开启哨兵服务图片[9] - Redis与分布式-哨兵模式 - MaxSSL
图片[10] - Redis与分布式-哨兵模式 - MaxSSL图片[11] - Redis与分布式-哨兵模式 - MaxSSL
启动哨兵后,会自动监控主节点,还会显示哪些节点是作为从节点存在的。
图片[12] - Redis与分布式-哨兵模式 - MaxSSL

此时把主节点6001关闭,查看会发生什么。
图片[13] - Redis与分布式-哨兵模式 - MaxSSL
此时再启动6001服务
图片[14] - Redis与分布式-哨兵模式 - MaxSSL
此时6001和6001同步,6001会从6003同步数据
图片[15] - Redis与分布式-哨兵模式 - MaxSSL
这里哨兵把6003作为了新的主节点,而不是6002,是遵循了以下规则:
图片[16] - Redis与分布式-哨兵模式 - MaxSSL
但是如果哨兵挂了可能会影响。此时可配置多个哨兵,只需要将哨兵的配置复制以下,然后修改端口,这样就可以启动多个哨兵。
启动3个哨兵(一主二从),把最后一个值改为2:
先把6001,6002,6003给关闭。然后复制三个redis sentinel
图片[17] - Redis与分布式-哨兵模式 - MaxSSL
图片[18] - Redis与分布式-哨兵模式 - MaxSSL
图片[19] - Redis与分布式-哨兵模式 - MaxSSL
图片[20] - Redis与分布式-哨兵模式 - MaxSSL
图片[21] - Redis与分布式-哨兵模式 - MaxSSL
先启动6001,6002,6003三个服务,然后启动上边3个修改后的哨兵

# 启动服务redis-server.exe redis.windows.conf

图片[22] - Redis与分布式-哨兵模式 - MaxSSL

# 启动哨兵redis-server.exe redis.windows.conf --sentinel

图片[23] - Redis与分布式-哨兵模式 - MaxSSL

此时6003为6002和6001的主节点。此时将6003主节点进行关闭,查看状态。
图片[24] - Redis与分布式-哨兵模式 - MaxSSL
针对哨兵重新选举新的节点后,java中的redis怎么感知?如下:
先导入依赖

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.2.1</version></dependency>

图片[25] - Redis与分布式-哨兵模式 - MaxSSL
图片[26] - Redis与分布式-哨兵模式 - MaxSSL
java操作redis的sentinel进行写入,能正常读取
图片[27] - Redis与分布式-哨兵模式 - MaxSSL
从redis客户端读取java写入的值,也正常读取
图片[28] - Redis与分布式-哨兵模式 - MaxSSL

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享