如何将redis中存储的数据与数据库中的数据同步?

时间:2015-07-01 17:51:28

标签: c# redis stackexchange.redis

如果我将数据库中的用户数据加载到redis。说已经过了5秒,并且数据库中的用户信息已经更新。

检查redis中的数据是否不同步的最佳方法是什么?您是否定期调用数据库并检查您是否拥有与数据库中存储的数据相同的数据?或者您是否要检查何时将某些数据提交到数据库?

我使用stackexchange.redis作为客户端,如果这有任何区别。

1 个答案:

答案 0 :(得分:2)

您的问题的答案取决于软件架构和风格,您的应用程序可以正常工作。

如果只有一个应用程序包含一个组件(monolith-way),则数据同步应该在应用程序中进行。用户通过应用程序更新,记录将写入数据库和Redis。

如果您有多个应用程序/组件(微服务方式),这会变得有点困难。一个应用程序更新数据库中的用户信息,但其他应用程序不知道。所以你要么:

  • 使Redis中的数据无效,因此下一个获取用户详细信息的应用程序将首先看到Redis中没有存储任何内容然后转到数据库,获取记录并将其存储到Redis中
  • 或:使用TTL(有史以来最糟糕的选择)。
  • 如果记录“以某种方式”写入数据库并且您无法控制该应用程序,那么这是最糟糕的情况。在这种情况下我会选择TTL。

HTH,马克