springboot+redis分离打包实体类不一致导致redis缓存信息获取失败

问题:
最近在使用springboot+redis开发项目时出现了问题,为了使平台各模块的维护更加便捷,我采用了各模块分离打包的模式,各模块共用一个redis。
由于业务需求,把部分用户信息存入redis方便各模块调用,其中user模块,platform模块,course模块都有一个实体类user,因为要校验用户的身份,所以在platform模块和cours模块的实体类user中添加了一个属性role,而user模块中是没有该属性的。
当用户通过user模块登录时将用户的部分信息存入redis,然后在course和platform模块进行jwt校验时取redis缓存信息。一开始为了省事,我直接将实体类序列化后存入redis的value中,而在通过非user模块取value时就出现了反序列化异常。

解决办法:

一、保持各模块间实体类的一致性
二、在redis中通过Key field value 的形式存储实体类中的各个属性 而不是直接存储整个实体类。

猜你喜欢

转载自blog.csdn.net/sgsx11/article/details/120784339