从RedisTemplate, StringRedisTemplate 的序列化异同引发的思考

长话短说:

  • StringRedisTemplate, RedisTemplate 都是redis在Spring中的封装的模板工具类
  • StringRedisTemplate 从名字看, 是用来存取String的
  • RedisTemplate 从名字上看, 是什么都能干, 包含上面的
  • 两种实现都会将key使用对应的不同的序列化实现类实现
  • 因为是不用的序列化实现类, 所以出现了一个现象:
    比如在StringRedisTemplate中 将 a --> value 存入
    但是在 RedisTemplate 中用 a 为key是返回null的, 就是因为相通的key用不同的序列化, 结果也不一样, 到了redis-server哪里就是完全不同的key了

看到有的网友的解决办法, 就是在使用RedisTemplate时,重写它的setKeySerializer,setHashKeySerializer方法,将之改为StringRedisSerializer,这样可以做到键可读,值序列化.
感觉不错, 可以一试!

你可能感兴趣的:(Redis,build-in,class,分析,redis,java)