重启后在Redis(或其他缓存服务)中重新加载数据的最佳方法?

时间:2017-12-06 00:16:44

标签: caching architecture redis

当Redis服务器出现故障并重新启动时,将数据重新加载到Redis的最佳方法是什么? (我对Redis和内存数据库有点新鲜)

我有三个部分,我将如下描述:

  • Producer app - 更新SQL数据库并将SQL数据的子集写入Redis服务器
  • Redis服务器 - 具有SQL数据的重要子集
  • 消费者应用程序 - 需要快速查找Redis中的数据(目前无法写入Redis或SQL数据库)

我正在考虑的一些选项:

  • 将重装脚本放入Redis服务器,以便它在查询SQL数据库并在启动时重新加载
  • 在Producer应用程序中构建一个端点,消费者应用程序可以调用该端点,以告知Producer应用程序在消费者应用程序注意到Redis服务器为空且已重新启动时重新加载Redis
  • 完全摆脱Producer应用程序并让Consumer应用程序直接查询SQL数据库并在Redis中写入结果(但那么它将如何知道SQL数据何时更新?)
  • 保留Producer应用程序,同时让Consumer应用程序直接查询SQL数据库,并在Consumer应用程序检测到Redis为空时在Redis中写入结果

1 个答案:

答案 0 :(得分:0)

将数据重新加载到Redis或任何其他缓存中称为缓存加温。您似乎遇到的问题是您并未尝试将Redis用作缓存,而是尝试在应用之间进行通信。

通常你会希望你的应用程序查询Redis以查看其中是否有数据,如果没有查询端点或数据库,那么你应该总是有一些没有Redis的方法。

您是否让生产者清除消费者的缓存或让消费者介意它自己的缓存并处理陈旧数据或引入另一个应用程序只是为了提供数据将取决于您的确切需求。