啊湫----今天做项目遇到的redis缓存问题---解决方案

演示缓存问题

在进行 前端某个功能更新时 传递的参数 问题 导致 缓存储存 覆盖 只缓存到 传递参数的 值

image

更新完毕后 进行 存储到redis当中 只存入了 当前这个不可以属性和一个id 其它的参数值 u覆盖默认为 空 ' null '

image

缓存储存 覆盖


image.png

解决办法

一、进行使用糊涂(Hutool) 工具进行解决

问题: 当前端某个功能 提交数据 但是数据不全 导致存储到缓存 获取到的数据 缺失

先进行根据传递来的 id 查询出 对应的对象

Provider selectById = this.providerMapper.selectById(provider.getId());

在进行使用糊涂工具 进行 覆盖

把不为空的属性 覆盖到 selectById 合并成一个 完整的数据集

-- 参数一为 传递来的对象 参数二为 被覆盖对象

BeanUtil.copyProperties(provider, selectById, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));

最后进行更新

this.providerMapper.updateById(provider);

在返回缓存 即可

return this.providerMapper.selectById(provider.getId());

========================================================

方案2

先执行更新 可在返回时进行查询一边

this.providerMapper.updateById(provider);
return this.providerMapper.selectById(provider.getId());

代码演示

image

这个bug有点小难受
下次再见 拜拜!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 懒得处理样式了, 将就着看吧. 官网地址: https://developer.android.com/topic...
    Reddington_604e阅读 1,823评论 0 1
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,702评论 0 5
  • 紫砂柴烧作品,公道与主人杯,柴烧效果不错,紫砂器泡茶己近完美,进而柴烧,亦可为茶器之绝妙也!
    妙喜文人紫砂阅读 122评论 0 0
  • 世界这么大,你想去哪看看?世界这么大,有你向往的城市吗?世界这么大,你去过的地方让你记忆深刻的城在哪里? 世界真的...
    小小小野阅读 311评论 0 1
  • 我这么年轻,可我的内心却总是潮湿的、失望的。漫长的黑夜,凄美的季节,坐在路卡,如往常一样熟练般的点燃一根烟,...
    东方轩洛阅读 350评论 0 7