zoukankan      html  css  js  c++  java
  • 啊湫----今天做项目遇到的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有点小难受
    下次再见 拜拜!

  • 相关阅读:
    洛谷 P1048 采药
    一本通 1267:【例9.11】01背包问题
    一本通 1265:【例9.9】最长公共子序列
    一本通 1282:最大子矩阵
    一本通 1285:最大上升子序列和
    一本通 1284:摘花生
    一本通 1283:登山
    一本通 1264:【例9.8】合唱队形
    洛谷 P1126 机器人搬重物
    洛谷P1522 牛的旅行 Cow Tours
  • 原文地址:https://www.cnblogs.com/Yangbuyi/p/13153002.html
Copyright © 2011-2022 走看看