1. 首页
  2. 编程语言
  3. Java
  4. 解决RedisTemplate的key默认序列化器的问题

解决RedisTemplate的key默认序列化器的问题

上传者: 2021-06-19 04:11:55上传 PDF文件 139.06 KB 热度 14次

redis的客户端换成了spring-boot-starter-data-redis,碰到了一个奇怪的问题,在同一个方法中1.先hset,再hget,正常获得数据。在服务器端先确认发现实际有这个Hash,通过hset可以得到正确的数据,所以第一次执行hset的时候命令是正常的,问题可能出现在hget上面,先打开源码看一下从这里可以看到实际上传给redis的都是byte数据,而byte数组是rawKey和rawHashKey生成的,先看下rawKey方法然后进一步跟踪keySerializer()方法最后跟踪到是RedisTemplate中的属性keySerializer导致的,而通过打印keySerializer的class发现 默认使用的是org.springframework.data.redis.serializer.JdkSerializationRedisSerializer,但它是如何进行初始化的呢,默认的构造函数中并没有对该属性进行初始化。

用户评论