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

Spring Data Redis无法获取持久化数据,Redis键前缀含义咨询

问题解析与解决

关于键前缀\xac\xed\x00\x05t\x00\x06的说明

这个前缀是Java序列化的二进制标记,因为Spring Data Redis的RedisTemplate默认使用JdkSerializationRedisSerializer作为键和值的序列化器:

  • \xac\xed\x00\x05是JDK序列化的魔数,用来标识这是JDK序列化的数据
  • t表示后续内容是字符串类型
  • \x00\x06是后续字符串的长度(对应"voting"的6个字符)

为什么GET命令返回nil?

你用rightPush操作的是Redis的列表(List)类型,而GET命令仅适用于查询字符串(String)类型的键值对。要查看列表内容,应该用列表专用命令:

# 使用默认序列化器时,需用完整的序列化后键
LRANGE "\xac\xed\x00\x05t\x00\x06voting" 0 -1

如何让Redis键显示为明文"voting"?

修改RedisTemplate的序列化器,改用StringRedisSerializer来序列化键(和值),这样存入Redis的键就是明文:

// 配置RedisTemplate的序列化器
redisTemplate.setKeySerializer(new StringRedisSerializer());
// 如果希望值也以明文存储,同样设置值序列化器
redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.afterPropertiesSet();

配置后再执行rightPush,Redis里的键就会是"voting",此时可以用LRANGE voting 0 -1直接查看列表内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:34:57