老项目需要集成redis集群
因为spring版本才从2.x升级上来,再升级可能改动较大,且并非maven项目升级麻烦,故直接集成。
jar包准备:
jedis-2.9.0.jar -- 据说只有这个版本支持 密码...
commons-pool2-2.0.jar
spring-data-redis-1.8.1.RELEASE.jar
spring-data-commons-1.8.1.RELEASE.jar
1<!-- redis-开始 --> 2 <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> 3 <!--最大空闲数 --> 4 <property name="maxIdle" value="${redis.maxIdle}" /> 5 <!--最大建立连接等待时间 --> 6 <property name="maxWaitMillis" value="${redis.maxWait}" /> 7 <!--是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个 --> 8 <property name="testOnBorrow" value="${redis.testOnBorrow}" /> 9 </bean> 10 11 <bean id="jedis" class="redis.clients.jedis.JedisCluster"> 12 <constructor-arg> 13 <set> 14 <bean class="redis.clients.jedis.HostAndPort"> 15 <constructor-arg name="host" value="${redis.host1}"></constructor-arg> 16 <constructor-arg name="port" value="${redis.port1}"></constructor-arg> 17 </bean> 18 <bean class="redis.clients.jedis.HostAndPort"> 19 <constructor-arg name="host" value="${redis.host2}"></constructor-arg> 20 <constructor-arg name="port" value="${redis.port2}"></constructor-arg> 21 </bean> 22 <bean class="redis.clients.jedis.HostAndPort"> 23 <constructor-arg name="host" value="${redis.host3}"></constructor-arg> 24 <constructor-arg name="port" value="${redis.port3}"></constructor-arg> 25 </bean> 26 <bean class="redis.clients.jedis.HostAndPort"> 27 <constructor-arg name="host" value="${redis.host4}"></constructor-arg> 28 <constructor-arg name="port" value="${redis.port4}"></constructor-arg> 29 </bean> 30 <bean class="redis.clients.jedis.HostAndPort"> 31 <constructor-arg name="host" value="${redis.host5}"></constructor-arg> 32 <constructor-arg name="port" value="${redis.port5}"></constructor-arg> 33 </bean> 34 <bean class="redis.clients.jedis.HostAndPort"> 35 <constructor-arg name="host" value="${redis.host6}"></constructor-arg> 36 <constructor-arg name="port" value="${redis.port6}"></constructor-arg> 37 </bean> 38 </set> 39 </constructor-arg> 40 <constructor-arg name="connectionTimeout" value="${redis.timeout}" /> 41 <constructor-arg name="soTimeout" value="${redis.timeout}" /> 42 <constructor-arg name="maxAttempts" value="${redis.maxAttempts}" /> 43 <constructor-arg name="password" value="${redis.password}" /> 44 <constructor-arg name="poolConfig"> 45 <ref bean="jedisPoolConfig" /> 46 </constructor-arg> 47 </bean> 48 49 <!-- redis-结束 --> 50 51redis.maxIdle=200 52redis.maxActive=1000 53redis.maxWait=1000 54redis.testOnBorrow=true 55redis.timeout=30 56redis.maxAttempts=300 57redis.password=xxxxxx 58 59# 10.10.130.150:1501,10.10.130.150:1502,10.10.130.150:1503,10.10.130.150:1504,10.10.130.150:1505,10.10.130.150:1506 60redis.host1=10.10.130.150 61redis.port1=1501 62redis.host2=10.10.130.150 63redis.port2=1502 64redis.host3=10.10.130.150 65redis.port3=1503 66redis.host4=10.10.130.150 67redis.port4=1504 68redis.host5=10.10.130.150 69redis.port5=1505 70redis.host6=10.10.130.150 71redis.port6=1506 72 73public class RedisUtil { 74 private static JedisCluster jedis = (JedisCluster) SpringContextHolder.getBean("jedis"); 75 76 private RedisUtil() { 77 } 78 79 /** 80 * 获取指定key的值,如果key不存在返回null,如果该Key存储的不是字符串,会抛出一个错误 81 * 82 * @param key 83 * @return 84 */ 85 public static String getstr(String key) { 86 String value = null; 87 value = jedis.get(key); 88 return value; 89 } 90 91 /** 92 * 设置key的值为value 93 * 94 * @param key 95 * @param value 96 * @return 97 */ 98 public static String set(String key, String value) { 99 return jedis.set(key, value); 100 } 101}
如果需要配置 redisTemplate的需要 spring版本 4.x ,否则会有各种错误。