最近整合使用redis spring-redis 出现了一下问题
spring:3.2.4.RELEASE
jedis: jedis 2.4.2
spring-data-redis: 1.5.2.RELEASE
各种折腾换了N个版本之后,启动的时候报错主要有一下两种:
Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.isUserLevelMethod(Ljava/lang/reflect/Method;)Z
java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
org/springframework/data/redis/connection/jedis/JedisConnectionFactory.afterPropertiesSet()V
最后得到如下配置是OK的:
<dependency> groupId>redis.clients</artifactId>jedisversion>2.4.2> > >org.springframework.data>spring-data-redis>1.3.0.RELEASE> >org.springframework>spring-xxx>3.2.4.RELEASE>
spring:
bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"property name="maxTotal" value="32"></property="maxIdle"="6"="testOnBorrow"="true" /> bean> ="jedisConnectionFactory"="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy"="poolConfig" ref="jedisPoolConfig"="hostName"="123.56.72.172"="port"="6379"="password"="redis"="timeout"="15000"="usePool"="true"> ="redisTemplate"="org.springframework.data.redis.core.RedisTemplate"="connectionFactory"="jedisConnectionFactory"="keySerializer"class="org.springframework.data.redis.serializer.StringRedisSerializer"/> ="valueSerializer"="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer">
注入:
@Autowired private RedisTemplate<String,String> redisTemplate;
使用:
String paramK = "spring-redis-key"; String paramV ="Hello,spring-redis-data!!!"; redisTemplate.opsForValue().set(paramK,paramV);
存值成功之后,存的值为:
this ok.
在 redis-cli中查看值结果如下:
get spring-redis-key
"\xac\xed\x00\x05t\x00\bthis ok."
发现没,多了一个前缀 \xac\xed\x00\x05t\x00\b
这个为序列化的问题:http://blog.csdn.net/yunhaibin/article/details/9001198
参考资料:
http://zhaobing315.iteye.com/blog/2082189
http://www.cnblogs.com/tankaixiong/p/3660075.html
http://www.sxt.cn/u/2839/blog/4363
http://www.cnblogs.com/tankaixiong/p/3660075.html