1
FaceBug 2021-03-28 14:28:33 +08:00
如果是我,在数据量不大的情况,我觉得我可能这么做
1 、每次抓到新数据,直接写入数据库,暂时不删旧的数据,也不碰 redis 2 、设置一个按照规则读取不同 key 的方案,当时间为 0-2 时,读 key_0,为 3-5 时读 key_3 3 、如果发现没有设置 redis key_3,去数据库找 key_3 (就和平时用 redis 做缓存一样操作) 4 、定时删除过期的 key 和 mysql 这样我也懒得比较是更新还是删除还是新增,每次都直接用最新的完整版数据就完事了 |
2
palmers 2021-03-29 09:49:04 +08:00
我理解 你这是在做数据异构吧? 然后从另一个角度想这个第三方的数据是否可以通过 mq 的方式订阅不同数据的主题, 比如 数据增加的 topic, 数据删除的 topic 数据更新的 topic 或者是这几个合并 topic 你没有采用是不是这条路已经被堵死了? 那么 如果这样, 我觉得可以这样: 首先我理解你肯定知道本次查询结果是新增一个 k3 还是失效 k2 还是 k1 更新吧 那么如此你肯定知道怎么做了, 然后自己发送 mq 通知, 然后另一个 worker 去订阅你的 mq 做数据库操作, 我想数据延迟上也不会有问题的, 因为你说数据库只是备份 并不是用来做业务数据直接依赖的
|