gpt4 book ai didi

java - 如何保持缓存与数据库同步?

转载 作者:行者123 更新时间:2023-11-30 07:58:04 24 4
gpt4 key购买 nike

我们有定期更新的数据库。我正在使用 ehcache 和 mysql 数据库。

现在,一旦数据库更新,我们需要根据更新从数据库中提取一些信息并将其发布到缓存。

  1. 我应该如何使我的数据库与缓存保持同步(缓存应该随着数据库的更新而更新)?
  2. 我怎么知道数据库何时更新?

最佳答案

这是缓存引入的经典问题。当您在数据库和缓存中复制数据时,就会引入一致性问题。

这个问题没有单一的答案。

对于 1,答案取决于防止从缓存中提供陈旧数据的重要性。在某些情况下,这不是问题,使用较短的到期时间即可解决问题。在其他情况下,您必须在缓存中拥有最新数据,然后您必须确保缓存的条目无效。

请注意,以完全安全的方式执行此操作很困难,这就是为什么 Hibernate has so many second level cache strategies ,越来越安全,但也越来越慢。

对于问题 2,这实际上是特定于您的应用程序的。如果只有您的应用程序更新数据库,那么您知道何时使缓存失效。如果数据库在外部更新,您必须让该系统知道您的应用程序——或者至少是缓存——以便它可以发送失效。

关于java - 如何保持缓存与数据库同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40759479/

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