Springboot 项目使用 RMapCache 保存数据,发现值出现 \x00 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/c07a13f3ed7f9750dc5a51cc416937b6.png) \#1 使用 StringRedisTemplate 保存数据,可用 \#2 使用 RMapCache 保存数据, 出现\x00, 不可用 大致结构如下 demo project "源码自取" (https://link.segmentfault.com/?enc=SDcu1bJmwZZK7ajo28g%2BaQ%3D%3D.QOduvRZlGUnngtp4ZvQZhOM9ngbT2I7bsS%2F82T4I5268pjLvJJgOgybVP3UKfGx8) "测试视频" (https://link.segmentfault.com/?enc=60wT4pLp7XYMTvcSf4UX9w%3D%3D.7jzF7t5DxkBd8WHwKDMURCBk4kFEDXpJUBXGYGz3svqZ9rLVfEUY4Pdo7PNn%2BAqS) springboot: 2.7.18 redisson: 3.26.1 / 3.21.0 redis: Redis-x64-5.0.14.1 / redis-5.0.5 redisson codec: JsonJacksonCodec / StringCodec 跟踪代码后发现,数据在执行lua脚本后出现了问题 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/d2257d1531ebf2ac4a7b673e590c1d4d.png) 然后将脚本放到 redis-cli 直接执行,数据也是异常的 eval "return struct.pack('dLc0', 0, string.len(ARGV[1]), ARGV[1])" 0 "test" "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/b533cdef9529b8d058f1c57bcedffde4.png) 我要怎么修改 ===== 关于 RedisTemplate 序列化回复 ===== 我不知道为啥回复,刷新之后就消失了,再回复又重复,删除又两个都消失,在这里回复吧。 我并不是使用 RedisTemplate 来操作,而是使用的是 Redisson 的 RedissonClient 来进行操作 成功案例:直接使用 StringRedisTemplate ,demo 项目懒得配那么多,而且我也是成功了,上图#1 失败案例:使用 RMapCache mapCache = redissonClient.getMapCache(name); 我的错误发生在 使用 mapCache.put(key, value) 后 如果要设置,也是设置 redissonClient 的 Codec,我尝试过 JsonJacksonCodec 和 StringCodec,没有效果。原因,原问题有解释 ===== 关于 RedisTemplate 序列化回复 =====
我试了一下,对于普通的table类型,比方说. local t={} t["a"]=123 print(t.a) 使用t.a就可以用到t["a"]. 但这是适用于所有情况吗?包括如果t是一个用lua机制实现的类的对象,a是t的成员数据,这样的话正常地讲可以用t.a获取到a,但能用t["a"]吗?如果我非要用"a"这个字符串获取到t.a这个成员数据,这样可行吗?