jedis,spring-redis-data整合使⽤,版本问题异常以及解决。最近整合使⽤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</groupId>
<artifactId>jedis</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.3.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-xxx</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
版本问题解决了,先贴各项配置代码:
spring:
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="32"></property>
<property name="maxIdle" value="6"></property>
<property name="testOnBorrow" value="true"/>
</bean>
<bean id="jedisConnectionFactory" class="org.tion.jedis.JedisConnectionFactory" destroy-method="destroy">
<property name="poolConfig" ref="jedisPoolConfig"></property>
<property name="hostName" value="123.56.72.172"></property>
<property name="port" value="6379"></property>
<property name="password" value="redis"></property>
<property name="timeout" value="15000"></property>
<property name="usePool" value="true"></property>
</bean>
<bean id="redisTemplate" class="org.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory"></property>
<property name="keySerializer">
<bean class="org.dis.serializer.StringRedisSerializer"/>
</property>
spring framework版本查看<property name="valueSerializer">
<bean class="org.dis.serializer.JdkSerializationRedisSerializer"/>
</property>
</bean>
注⼊:
@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 参考资料:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论