我确信这个主题有很多教程,但我找不到我想要的东西,因为我不知道它的行话。所以我问StackOverflow。
这里的例子:
人们可以喜欢或不喜欢Youtube上的视频,数据库应该更新喜欢或不喜欢的计数。但是,对于像Youtube这样的网站来说,每次用户点击“喜欢/不喜欢”按钮时更新数据库都是不切实际的。
我们如何以一个时间间隔缓存查询/计数数字,当时间到期时,我们一次发送所有查询/更新数据库?或者针对这种情况的任何类似技术?
答案 0 :(得分:0)
所以你所观察到的是事情之间的时间延迟,以及能够查看所发生事件的结果。
您正走在正确的路径上,只能定期更新。
但是你在错误的道路上走到了定期更新的地方。
你是想要来更新"数据库"每次ASAP(即负责写作的数据库 - 选择CAP三角形的缺角)来快速捕捉所有内容,但对于访客/观众,你给他们写入数据库的略微落后(几秒钟,可能是一天,视情况而定)。
您不希望将此内容存储在浏览器中,如果请求失败,互联网出现故障等,可能会失去用户所做的事情。
稍微偏离主题 - 您通常不会尝试过早优化"没有关于通过缓存,缓冲等来节省多少数据的数据。这样的优化会增加复杂性 - 如果你尽可能地保持简单,你将保持理智,更长久。保持您的设计简单,一旦您知道它们是什么就优化您的瓶颈。
稍微偏离主题 - 我建议阅读分布式计算,特别是因为它涉及数据库,然后是一些设计。你会意识到这些高度集中的抽象问题都有"解决方案"各种优点和缺点。