我将一些数据缓存在redis中,如果存在则从redis读取数据,否则从数据库读取数据并将数据写入redis.
我发现有几种方法可以在更新数据库后更新redis.例如:
- 将以红色表示的密钥设置为过期
- 在更新数据库之后立即更新redis.
- 将数据放入MQ并使用使用者更新Redis.
我有点困惑,不知道如何 Select .
你能告诉我每种方法的优缺点吗?最好告诉我其他方法来更新redis或推荐一些关于这个问题的博客.
我将一些数据缓存在redis中,如果存在则从redis读取数据,否则从数据库读取数据并将数据写入redis.
我发现有几种方法可以在更新数据库后更新redis.例如:
我有点困惑,不知道如何 Select .
你能告诉我每种方法的优缺点吗?最好告诉我其他方法来更新redis或推荐一些关于这个问题的博客.
实际的数据存储和缓存应该使用您在问题中已经描述的第三种方法进行同步.
当您将数据添加到最终存储区(即SQL数据库)时,您需要将这些数据排队到某个服务总线或消息队列中,并让某个异步服务使用某种后台进程来完成整个同步.
您不希望进入这种情况(当不使用服务总线和异步服务时):
关于使用Redis密钥过期,这是个好主意.由于Redis可以使用其内置机制使密钥过期,因此您不应该从整个后台进程实现密钥过期.密钥是否存在是因为它仍然有效.
顺便说一句,您不会一直关注这种情况(如果密钥没有过期,就意味着它不应该被覆盖).这可能取决于您的实际域.