复制代码

为懒人提供无限可能,生命不息,code不止

人类感性的情绪,让我们知难行难
我思故我在
日拱一卒,功不唐捐
  • 首页
  • 前端
  • 后台
  • 数据库
  • 运维
  • 资源下载
  • 实用工具
  • 接口文档工具
  • 登录
  • 注册

redis

【原创】无法保存对象到redis数据库(对象序列化,反序列化导致的)

作者: whooyun发表于: 2017-03-13 00:57

说说 

反序列化的坑,及解决方案:
现象:三台ECS(138, 149,143)
最新代码部署到138,另两台代码还是旧代码,启动出现反序列化异常问题,怀疑代码问题,检查过代码没有特别修改,仅添加了几个属性。

本地测试单机redis没有发现问题。使用主从方式从正式环境同步缓存数据测试遇到相同问题,

根据网上了解的少量信息,统一把实现序例化的实体类添加serialVersionUID, 


前期也添加过几个实体类,问题依旧。

怀疑是另两台ECS定入的数据与138服务器取出反序例化的数据不匹配造成。

先不管日志报出的反序例化错误,停用一台149服务器,138,143发布最新代码,清除redis缓存数据后,两台服务器日志未再发现反序列化异常问题。

以上为公司的解决办法。

个人觉得是这俩方面:

1、将对象进行redis缓存,或者存入到redis都必须进行序列化。

2、在重新部署项目前必须先清除redis缓存;