原文:http://www.cnblogs.com/luochengqiuse/p/4641360.html
目前我所知道的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操作。去掉该注解,独立出来这个方法解决。这个是要注意的地方。
其他的暂时没遇到。遇到了继续更新。