jedis支持哨兵主从配置role为slave

时间:2022-11-21 17:06:22

jedis功能强大,但是不能像nodejs一样指定从slave中读数据,使数据量读写量较大时读写分离,减少redis压力.

我们可以利用jedis中的方法封装一个类似于此的方法.

github地址: https://github.com/candyleer/jedis-enhance

使用方法如:

指定masterName名称,sentinels 地址,并定义一个连接池,初始化后可以从中获取一个jedis连接,支持哨兵的master切换后重新选举合适的slave,如果当前连接的slave挂了,需要重新启动服务进行连接(因为此时不会触发redis哨兵自动master选举.)

<bean id="jedisSentinelPool" class="com.candy.cache.jedis.JedisSentinelPool">
<constructor-arg name="masterName" value="test"/>
<constructor-arg name="sentinels" value="127.0.0.1:26279,127.0.0.1:36379" />
<constructor-arg name="poolConfig" ref="poolConfig" />
<constructor-arg name="role" value="slave" />
<constructor-arg name="timeout" value="5000" />
</bean>