RedisTemplate设置redis的key时出现\xac\xed\x00\x05t\x00\x0f前缀
1、问题描述使用redisTemplate设置redis的key-value,程序运行没有问题,但是却在redis客户端查不到设置的key-value。2、产生原因出现这种乱码前缀的原因是没有进行序列化,因此导致在传输过程出现乱码问题。RedisTemplate类中默认是没有设置序列化的。因此需要设置一下RedisTemplate的序列化方式3、解决方法设置RedisTemplate的序列化方式常
·
1、问题描述
使用redisTemplate设置redis的key-value,程序运行没有问题,但是却在redis客户端查不到设置的key-value。
2、产生原因
出现这种乱码前缀的原因是没有进行序列化,因此导致在传输过程出现乱码问题。
RedisTemplate类中默认是没有设置序列化的。
因此需要设置一下RedisTemplate的序列化方式
3、解决方法
设置RedisTemplate的序列化方式
常见的序列化方式
修改后的代码
@Test
public void testRedis() {
//使用StringRedisSerializer序列化方式(一般如果key-value都是string的话,使用StringRedisSerializer就可以)
RedisSerializer stringSerializer = new StringRedisSerializer();
//key序列化方式
redisTemplate.setKeySerializer(stringSerializer);
//String的序列化方式
redisTemplate.setStringSerializer(stringSerializer);
//value序列化方式
redisTemplate.setValueSerializer(stringSerializer);
//hash key序列化方式
redisTemplate.setHashKeySerializer(stringSerializer);
//hash value序列化方式
redisTemplate.setHashValueSerializer(stringSerializer);
redisTemplate.opsForValue().set("notify:00123456", "2022-01-01");
}
在redis客户端可以查到了
当然也可以把RedisTemplate序列化配置放到configure里面,做一个全局配置。
package xxx
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* @ClassName RedisConfig
* @Version 1.0
* @Author Wulc
* @Date 2022-01-11 16:41
* @Description 修改redis序列化
*/
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisTemplate redisTemplate) {
RedisSerializer stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setStringSerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
return redisTemplate;
}
}
4、参考资料
RedisTemplate操作redis时,key值出现\xac\xed\x00\x05t\x00前缀_u011345756的专栏-CSDN博客_\xac\xed\x00\x05t\x00
更多推荐
已为社区贡献8条内容
所有评论(0)