java redis存储键值包含\xac\xed\x00\x05t\x00\特殊字符

在使用Java的RedisTemplate操作Redis后,发现存储的键值中包含`xacxedx00x05tx00`这样的特殊字符前缀。这是由于默认的序列化方式JdkSerializationRedisSerializer导致的。解决方法包括切换到StringRedisTemplate或者修改RedisTemplate的序列化方式为StringRedisSerializer,避免特殊字符的出现。
摘要由CSDN通过智能技术生成

java RedisTemplate操作redis后,想看一下是否成功,

就redis-cli执行:keys *

  1. “\xac\xed\x00\x05t\x00\x04name”
  2. “a”
  3. “siteName”
  4. “\xac\xed\x00\x05t\x00\bsiteName”
  5. “myCache::userName”
    发现存储键值包含\xac\xed\x00\x05t\x00\特殊字符。

原因:RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化。

spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化。

public void afterPropertiesSet() {

    super.afterPropertiesSet();

    boolean defaultUsed = false;

    if (defaultSerializer == null) {

        defaultSerializer = new JdkSerializationRedisSerializer(
                classLoader != null ? classLoader : this.getClass().getClassLoader());
    }

    if (enableDefaultSerializer) {

        if (keySerializer == null) {
            keySerializer = defaultSerializer;
            defaultUsed = 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值