You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring应用用Jedis操作Redis,键带双引号致Redis Insight树形视图失效

问题分析与排查思路

核心问题

使用Spring RedisTemplate搭配Jedis时,插入Redis的键被双引号包裹,导致Redis Insight的树形视图无法正常识别,而此前用Node.js Redis客户端操作时无此问题。

当前配置

你的RedisTemplate配置如下:

@Bean
public RedisTemplate<String, Object> redisTemplate(@Nonnull RedisConnectionFactory redisConnectionFactory) {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    template.setConnectionFactory(redisConnectionFactory);
    template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
    return template;
}

你尝试添加了字符串序列化器,但未解决问题:

template.setStringSerializer(new GenericToStringSerializer<>(String.class));

排查与解决思路

1. 明确RedisTemplate序列化器的作用范围

RedisTemplate的defaultSerializer会被用于键、值、哈希键、哈希值的序列化(如果没有单独设置对应序列化器)。GenericJackson2JsonRedisSerializer会将所有对象(包括字符串类型的键)序列化为JSON格式,这就是键被双引号包裹的原因——JSON字符串本身就带有引号。

而你添加的setStringSerializer仅作用于StringRedisTemplate的特定操作,对RedisTemplate的键序列化无效。

2. 为键单独配置字符串序列化器

修改RedisTemplate配置,明确指定键的序列化器为字符串类型,避免JSON序列化带来的引号:

@Bean
public RedisTemplate<String, Object> redisTemplate(@Nonnull RedisConnectionFactory redisConnectionFactory) {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    template.setConnectionFactory(redisConnectionFactory);
    
    // 键使用字符串序列化器
    template.setKeySerializer(new StringRedisSerializer());
    template.setHashKeySerializer(new StringRedisSerializer());
    
    // 值使用JSON序列化器
    template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
    template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
    
    return template;
}

3. 验证Redis中的实际键值

使用redis-cli执行KEYS *命令,查看Redis中存储的键是否真的包含双引号。如果确实存在,说明是序列化问题;如果Redis中没有引号但Redis Insight显示有,可能是工具的显示bug(但这种情况概率极低)。

4. 检查哈希结构的键序列化

如果使用哈希(Hash)类型数据,确保hashKeySerializer也设置为StringRedisSerializer,否则哈希内的字段键也会被JSON序列化包裹引号,同样影响树形视图。

5. 确认操作时的键类型

确保在调用RedisTemplate的方法(如opsForValue().set("key", value))时,键参数是String类型,而非被包装成其他对象(比如不小心传入了Object类型的字符串实例,导致触发JSON序列化)。


内容的提问来源于stack exchange,提问作者laegil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:22:22