\#1 使用 StringRedisTemplate 保存数据,可用
\#2 使用 RMapCache 保存数据, 出现\x00, 不可用
大致结构如下
demo project
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脚本后出现了问题
然后将脚本放到 redis-cli 直接执行,数据也是异常的
eval "return struct.pack('dLc0', 0, string.len(ARGV[1]), ARGV[1])" 0 "test"
我要怎么修改
首先,让我们来分析这个问题。
从你给出的信息中,当使用 RMapCache
保存数据时,值中出现了 \x00
。这很可能是由于编码问题导致的。\x00
是一个特殊的字符,在 Redis 中通常用作命令的分隔符。
以下是一些建议的解决步骤:
JsonJacksonCodec
和 StringCodec
都可以工作,但要确保它们与你的数据结构兼容。StringRedisTemplate
来保存数据,因为它是为字符串设计的,可能避免了编码问题。如果你必须使用 RMapCache
,确保你了解其内部的工作原理,并考虑使用其他序列化/反序列化方式。希望这些建议能帮助你解决问题!如果你有更多的代码或错误信息,也可以提供给我,我会尽量为你提供更具体的帮助。
嗨,我有一个角色表和一个权限表,它有多对多的关系。我已经创建了下面链接中提到的实体 https://www.baeldung.com/jpa-多对多 角色实体 权限实体 我已经为每个实体创建了JPA存储库,并且正在尝试将权限保存给一个角色。我在表中已经有了一组/列表的权限,我正在尝试将它们映射到某个角色。我正在尝试使用spring JPA存储库执行下面的代码。 在执行我得到的代码时 org.hib
我使用的是spring boot 1.2.8,但类不存在。没有这门课最好的方法是什么?
SpringBoot项目本地运行测试一切正常,Jar包在本地运行也正常,当打包后传到 Linux 系统上,项目启动也没有问题,但是在前端发送请求后,发生了 Caused by: java.lang.ClassNotFoundException: com.qsj.acojbackendmodel.entity.User,这个User路径是错误的 ,正常应该是:com.qsj.acoj.model.e
本文向大家介绍SpringBoot项目在IntelliJ IDEA中如何实现热部署,包括了SpringBoot项目在IntelliJ IDEA中如何实现热部署的使用技巧和注意事项,需要的朋友参考一下 spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。 原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更
本文向大家介绍SpringBoot+jsp项目启动出现404的解决方法,包括了SpringBoot+jsp项目启动出现404的解决方法的使用技巧和注意事项,需要的朋友参考一下 通过maven创建springboot项目启动出现404 application.properties配置 项目结构 控制器方法 启动项目访问localhost:8080,出现404 Whitelabel Error Pag
本文向大家介绍SpringBoot使用Redis缓存的实现方法,包括了SpringBoot使用Redis缓存的实现方法的使用技巧和注意事项,需要的朋友参考一下 (1)pom.xml引入jar包,如下: (2)修改项目启动类,增加注解@EnableCaching,开启缓存功能,如下: (3)application.properties中配置Redis连接信息,如下: (4)新建Redis