一、redis配置文件内容
#redis的服务器地址
redis.host=127.0.0.1
#最大连接数
redis.maxTotal=800
#最小连接数
redis.minIdle=100
#最大空闲数
redis.maxIdle=200
#最大建立连接等待时间
redis.maxWait=10000
redis.timeout=5000
#指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
redis.testOnBorrow=true
redis.maxActive=1000
二、xml配置
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.maxTotal}" />
<property name="minIdle" value="${redis.minIdle}" />
<property name="maxWaitMillis" value="${redis.maxWait}" />
<property name="maxIdle" value="${redis.maxIdle}" />
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
<property name="testOnReturn" value="true" />
<property name="testWhileIdle" value="true" />
</bean>
<bean id="jedisSentinelPool" class="redis.clients.jedis.JedisSentinelPool">
<constructor-arg index="0" value="mymaster"/>
<constructor-arg index="1">
<set>
<value>127.0.0.1:26379</value>
<value>127.0.0.1:26380</value>
</set>
</constructor-arg>
<constructor-arg index="2" ref="poolConfig" />
</bean>
其中jedisSentinelPool中的set集合可根据具体哨兵节点进行配置。
三、代码中使用
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"classpath:config/spring-redis-cluster.xml");
JedisSentinelPool jedisSentinelPool = context.getBean(JedisSentinelPool.class);
Jedis jedis1 = jedisSentinelPool.getResource();
System.out.println(jedis1.set("name1", "yucong"));
System.out.println(jedis1.set("age1", "28"));
System.out.println(jedis1.set("sex1", "男"));
System.out.println(jedis1.get("name1"));
System.out.println(jedis1.get("age1"));
System.out.println(jedis1.get("sex1"));
四、需要注意的几个点
jedis 的jar包有些版本是不支持集群的不管是cluster模式还是sentinel模式(老版本不支持,新版本支持,具体支持版本未确定),另外支持的jar包版本一般都依赖于commons-pool2的jar包及spring-data-redis的jar包。