跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 问一个关于 redis hash 的问题
未分類
21 3 月 2021

问一个关于 redis hash 的问题

问一个关于 redis hash 的问题

資深大佬 : wxm 2

现在有个场景,有个定时每分钟先从第三方接口查询数据在本地,然后处理完放到 redis 里面,再把处理完的数据存到数据库备份。三方接口的数据每次返回的数据可能不一样,我用 hash 结构存储这些数据,hmset domain k1 v.toString k2 v.toString,因为下一次可能新增 k3,k2 失效,k1 更新。我不想每次 hmset 都先删除这个 domain,请问有什么其他好的解决方案。数据库备份是先删库再 insert 。都是先删再 inser 感觉操作有点太重了。存成 hash 是因为条 v 有高频查询需求。
大佬有話說 (2)

  • 資深大佬 : FaceBug

    如果是我,在数据量不大的情况,我觉得我可能这么做

    1 、每次抓到新数据,直接写入数据库,暂时不删旧的数据,也不碰 redis

    2 、设置一个按照规则读取不同 key 的方案,当时间为 0-2 时,读 key_0,为 3-5 时读 key_3

    3 、如果发现没有设置 redis key_3,去数据库找 key_3 (就和平时用 redis 做缓存一样操作)

    4 、定时删除过期的 key 和 mysql

    这样我也懒得比较是更新还是删除还是新增,每次都直接用最新的完整版数据就完事了

  • 資深大佬 : palmers

    我理解 你这是在做数据异构吧? 然后从另一个角度想这个第三方的数据是否可以通过 mq 的方式订阅不同数据的主题, 比如 数据增加的 topic, 数据删除的 topic 数据更新的 topic 或者是这几个合并 topic 你没有采用是不是这条路已经被堵死了? 那么 如果这样, 我觉得可以这样: 首先我理解你肯定知道本次查询结果是新增一个 k3 还是失效 k2 还是 k1 更新吧 那么如此你肯定知道怎么做了, 然后自己发送 mq 通知, 然后另一个 worker 去订阅你的 mq 做数据库操作, 我想数据延迟上也不会有问题的, 因为你说数据库只是备份 并不是用来做业务数据直接依赖的

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具