spring中如何使用jackson代替JdkSerializationRedisSerializer

Dan*_*elD 4 java spring jackson redis

我在我的一个 Java 应用程序中使用 Redis,并且正在序列化要存储在 Redis 中的对象列表。但是,我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer。相反,我想使用 Jackson 进行序列化,因为我相信它的速度更好。我该如何配置我的 RedisTemplate 以使用 Jackson?

为了澄清起见,这就是我配置 RedisTemplate 的方式:

@Override
protected RedisConfiguration getRedisConfiguration() {
    return redisConfiguration;
}

@Bean
public RedisTemplate<String, Object> getRedisTemplate() {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    template.setConnectionFactory(jedisConnectionFactory());
    return template;
}
Run Code Online (Sandbox Code Playgroud)

dai*_*dai 5

像这样,

@Bean
public RedisTemplate<String, Object> getRedisTemplate() {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    Jackson2JsonRedisSerializer jrs = new Jackson2JsonRedisSerializer(String.class);
    template.setKeySerializer(jrs);
    template.setConnectionFactory(jedisConnectionFactory());
    return template;
}
Run Code Online (Sandbox Code Playgroud)

并且,我建议您阅读此文档 https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#redis:template