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

如何通过redis-cli查询Spring RedisTemplate存入Redis的Hash值?

问题分析与解决方法

核心原因

你看到的\xac\xed\x00\x05t\x00\x0bsomeDamn是Spring RedisTemplate默认使用JdkSerializationRedisSerializer序列化后的key,而且你用HashOperations存储的是Redis Hash结构,不是String类型,所以GET命令自然返回nil。


一、在redis-cli中查询指定版本的value

方法1:直接使用序列化后的key查询

在redis-cli中直接输入序列化后的二进制key,执行Hash查询命令:

# 注意转义序列要完整输入
HGET "\xac\xed\x00\x05t\x00\x0bsomeDamn" "urn:com.example.object-ref:version:2f7dcb42-a27d-4c9f-88d4-8721b3642792"

返回的结果是JDK序列化后的二进制数据,无法直接阅读,需要用Java代码反序列化解析。

方法2:修改RedisTemplate序列化规则(推荐)

修改Spring配置,将RedisTemplate的key和hashKey序列化器改为StringRedisSerializer,同时将value/hashValue改为JSON序列化,这样存入Redis的key和hashKey都是可读字符串:

@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    template.setConnectionFactory(connectionFactory);
    
    StringRedisSerializer stringSerializer = new StringRedisSerializer();
    // 设置key和hashKey为字符串序列化
    template.setKeySerializer(stringSerializer);
    template.setHashKeySerializer(stringSerializer);
    
    // 设置value为JSON序列化,方便可读
    Jackson2JsonRedisSerializer<Object> jsonSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
    template.setValueSerializer(jsonSerializer);
    template.setHashValueSerializer(jsonSerializer);
    
    template.afterPropertiesSet();
    return template;
}

修改后重新存入数据,就可以直接用原始key查询:

HGET someDamn "urn:com.example.object-ref:version:2f7dcb42-a27d-4c9f-88d4-8721b3642792"

二、导出该key下的所有值

方式1:用Redis原生命令导出

如果是序列化后的key,执行以下命令导出所有Hash键值对到文件:

redis-cli HGETALL "\xac\xed\x00\x05t\x00\x0bsomeDamn" > someDamn_hash_data.txt

如果已经改成字符串序列化,直接用:

redis-cli HGETALL someDamn > someDamn_hash_data.txt

导出的文件中,序列化的数据需要Java代码反序列化,JSON序列化的数据可直接阅读。

方式2:用redis-dump工具导出(可选)

安装redis-dump工具后,可直接导出指定key的结构化数据:

# 序列化key的情况
redis-dump -k "\xac\xed\x00\x05t\x00\x0bsomeDamn" > someDamn_dump.json

# 字符串序列化key的情况
redis-dump -k someDamn > someDamn_dump.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:37:19