zoukankan      html  css  js  c++  java
  • 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.springframework.data.redis.connection.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.springframework.data.redis.core.RedisTemplate">
            <property name="connectionFactory" ref="jedisConnectionFactory"></property>
            <property name="keySerializer">
                <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
            </property>
            <property name="valueSerializer">
                <bean class="org.springframework.data.redis.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
    "xacxedx00x05tx00this ok."

    发现没,多了一个前缀    xacxedx00x05tx00

    这个为序列化的问题: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

  • 相关阅读:
    时间控件My97DatePicker,实现时间的选择,具体运用
    OnClientClick事件和验证控件同时用的时候,会有问题
    根据Eval()函数绑定的值,来显示GridView中的控件的方法
    打印部分页面内容(Javascript)
    U盘装系统中bios怎么设置USB启动(图文教程)
    TextBox控件只允许输入数字(转)
    JS模态窗体的运用,以及相关注意事项(有用到window.returnValue)
    控件TextBox与验证控件相结合产生的控件(运用)
    linq 实现动态 orderby(根据参数名排序)
    yii 多个数据库链接
  • 原文地址:https://www.cnblogs.com/demingblog/p/5309864.html
Copyright © 2011-2022 走看看