数据库—在分布式系统中将数据标记为“脏”以便定期更新的最佳方法?

fumotvh3  于 2021-06-08  发布在  Redis
关注(0)|答案(0)|浏览(328)

e、 假设我有一个聊天应用程序,我有一个线程表和一个消息表。线程具有消息数。例如。:

Thread
id: int
numMessages: int

Messages
threadId: int
content: text

我可以增加 numMessages 每次我插入一条消息或者我可以计算每次的消息数,以防万一 numMessages 不同步。但是,假设有大量的消息,我不想更新 thread 每次有新消息的时候,都是一张table。如果最终是一致的就没关系了。e、 g.我可以更新 numMessages 一分钟一次。其中一个原因是我可能有 threads mysql/postgres中的表和 messages cassandra/hbase中的表,它们更适合于高io。
然后,我需要知道哪些线程需要更新,因为我不想每分钟都更新每个线程。假设我有多个服务器连接到一个db集群,我想到了一些方法:
使用消息队列并在每次创建消息时发送消息。我需要延迟+重复数据消除,我认为rabbitmq/redis在默认情况下无法做到这一点。
在redis中存储一组需要更新的线程id。
编辑:3。在messages表中查询需要更新的线程。
有更好的方法吗?我知道这是过早的优化,但我想学习如何正确地做它。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题