环境搭建
我是在win10下搭建的,1主2从,2个哨兵
master中增加或修改的配置
bind 192.168.2.101
port 6000 requirepass 123456
slave1中增加或修改的配置
bind 192.168.2.101
port 6001slaveof 192.168.2.101 6000masterauth 123456requirepass 123456
slave2中增加或修改的配置
bind 192.168.2.101
port 6002slaveof 192.168.2.101 6000masterauth 123456requirepass 123456启动命令 redis-server.exe redis.windows.conf
sentinel1中增加或修改的配置
bind 192.168.2.101
port 26379sentinel monitor mymaster 192.168.2.101 6000 2
sentinel auth-pass mymaster 123456sentinel2中增加或修改的配置
bind 192.168.2.101port 26479sentinel monitor mymaster 192.168.2.101 6000 2
sentinel auth-pass mymaster 123456启动命令redis-server.exe redis.windows.conf --sentinel
文件目录结构
编写工具类以及测试
哨兵模式下pool会一直获取master节点的连接,如果master挂了,则由哨兵推出新的节点并连接到新的master节点上
运行结果
完整的代码
https://github.com/cdy1996/common-util/blob/master/src/main/java/com/cdy/common/util/middleware/redis/JedisSentinelUtil.java
当然我这次只是完成的简单的主从模式(哨兵),如果遇到数据量更加大时,单独的主服务器无法承受时,需要建立redis集群,
而redis的集群有很多,如Redis Sharding(主要是通过一致性hash实现数据分片存储)、中间件实现的Redis集群(Twemproxy、Codis)、Redis集群的官方方案:Redis Cluster。
具体见https://blog.csdn.net/kingcat666/article/details/78552511