gpt4 book ai didi

mysql - 使用多个服务器处理过时的缓存

转载 作者:行者123 更新时间:2023-11-29 13:14:01 25 4
gpt4 key购买 nike

我们目前在一台服务器上托管了一个网站,并且正在考虑添加一台新服务器。主要问题是关于缓存。某些项目根据更改时间进行缓存。然而现在,它们在同一进程中发生更改,因此缓存可能会失效。

如果网站托管在两台服务器上,则可以在两台服务器上进行更改,并且它们不会收到此类更改的通知。缓存需要保留,因为它可以大大加快网站速度。我希望缓存不在缓存服务器的进程外进行,因为它会降低网络速度而不是内存速度,并增加服务器的复杂性。

该网站是在 .Net 中实现的,并使用 MySQL 作为支持数据存储。我的问题是当数据发生变化时如何通知流程。是否有可能当数据发生变化时MySQL会自动通知所有注册的客户端?我使用过 RavenDb,它具有类似的功能,非常方便。我找不到 MySQL 的类似内容。如果这是不可能的,有什么想法可以解决这个问题吗?

最佳答案

分布式缓存是一个复杂的主题。听起来您正在运行一个更基本的内存缓存。如果是这种情况,您将需要自己处理同步,或者对数据的“最终一致性”感到满意,假设您有一些过时的 key 检查机制。

我个人会考虑使用 memcached(我们使用 Couchbase)。您对这成为网络瓶颈的看法可能没有实现,尽管实际上内存访问速度更快。实际上,我们注意到 Couchbase 缓存速度足够快,而且在关键级别是原子的。它将处理节点上的 key 分发。

至于MySQL向客户端推送通知,我不确定,但我不这么认为。如果您在数据库访问上有一层代码(DAL 等),您可以自己模拟这一点。

让缓存遵循与数据库相同的完整性原则的愿望也很难调和。如果你实现了这一点,那么你所做的就是建立一个内存数据库。缓存应该是随着时间的推移数据准确性的权衡,以提高可扩展性。

关于mysql - 使用多个服务器处理过时的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21723990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com