如何更新所有服务器实例中的本地内存缓存

时间:2016-04-27 09:21:08

标签: performance caching server

我有一个包含许多正在运行的Web服务器实例的Web服务器群集。每个实例在其本地内存中缓存一些配置,原始配置存储在数据库中。

这些配置用于每个请求,因此出于性能原因,缓存可能是必需的。

我想提供一个管理页面,管理员可以在其中更改配置。如何更新每个服务器实例中的所有缓存?

现在我有两个解决方案:

  1. 设置缓存的过期时间。
  2. 当管理员更新配置时,通过某种pub/sub机制通知每个实例(例如使用redis)。
  3. 对于解决方案1,缺点是更改不能立即生效 对于解决方案2,我想知道,如果pub / sub会影响Web服务器的性能。

    哪一个更好?或者这个问题有什么共同的解决方案吗?

1 个答案:

答案 0 :(得分:0)

选项1的另一个缺点是您会不必要地定期点击数据库。

如果您已经在使用Redis,则选项2是一个很好的解决方案。我已经成功使用它,无法想象仅仅因为您使用pubsub会对性能产生影响。

另一种选择是在每个网站上创建缓存失效网址,例如/ admin / cache-reset /,让管理工具在每台服务器上调用缓存重置URL。此解决方案的缺点是您需要维护服务器列表。如果您还没有使用Redis,那么它可能只是您正在寻找的简单/实用/低技术解决方案。