列举一些因为缓存导致的各种报错
- 修改了前端的Theme配置后,页面不生效?
- 更新产品版本或者修改了数据库字段后,后端服务报错序列化失败?
缓存类型
在LangChat Pro产品中,存在两种缓存:- 浏览器本身的缓存,LocalStorage、Cookie等
- Redis缓存,后端服务写入的缓存
浏览器缓存
主要包含几类:- 登录的Token或者用户信息可能写入到缓存中
- 前端项目的Layout、Theme配置会写入缓存
Redis缓存
在LangChat Pro产品中,Redis缓存的写入来源主要有几种:- Sa-Token 主动写入的缓存,也就是Auth相关的(如:登录用户信息、Token)
- Spring的
@Cacheable注解,所有包含次注解的函数,都会将返回值写入到Redis - 代码中主动使用
RedisTemplate对象写入的缓存
getById 函数都会增加 @Cacheable 注解,也就是所有的根据ID查询的函数都会往Redis缓存一次结果(比如模型信息,避免频繁查询mysql)
因此,如果当更新项目导致数据库字段有变更(以及手动操作数据库字段的情况),都可能导致Spring从Redis中反序列化报错。

