zoukankan      html  css  js  c++  java
  • 深入理解Spring Redis的使用 (五)、常见问题汇总

    目前我所知道的Redistemplate里面,我没有使用到的就是管道。这个可以进行批量的读写。类似于jdbc的batch。还有就是Redis的集群部署。但是由于我业务里没有这种需求,所以没有使用无法给大家进行讲解。

    遇到的问题有:

    1.序列化器。

    由于我是配置了全局唯一一个RedisTemplate,所以所有的dao都共用RedisTemplate,难免会出现有的无法使用公共的序列化器的。

    比如一个统计数量的incr函数,这个调用的时候,Redis服务器存储了一个字符串,通过valueoperaion进行get的时候,反序列化异常。这个因为默认的valueserializer是jdk序列化。但是服务器存储了字符串。对于这种情况,我就重写该Dao的get方法,自己使用RedisCallback调用。里面用StringSerializer反序列化,问题解决。

    除此之外,还会存在一些别的问题。所以,对于一些基本类型来说,建议大家直接定义一个objectSerializer,里面先进行转String,然后调用String.getbytes解决。反序列化这个问题我也没到怎么处理。但是一般也很少getKey。如果有好的办法请私信我。

    2.脚本的事务问题

    因为我的所有操作都是通过@transactional,让spring来管理事务的,后来发现执行脚本的时候报错。看异常才知道脚本不支持事务,但是进入方法前,spring已经把当前的connection进行了multi操作。去掉该注解,独立出来这个方法解决。这个是要注意的地方。

  • 相关阅读:
    Spring 由哪些模块组成?
    spring 支持哪些 ORM 框架 ?
    @Autowired 注解有什么用?
    spring JDBC API 中存在哪些类?
    有哪些类型的通知(Advice)?
    @Component, @Controller, @Repository, @Service 有何区别?
    @Qualifier 注解有什么用?
    什么是 Aspect?
    什么是通知(Advice)?
    spring bean 容器的生命周期是什么样的?
  • 原文地址:https://www.cnblogs.com/barrywxx/p/8525852.html
Copyright © 2011-2022 走看看