我用redis缓存一些数据,如果存在则从redis读取数据,否则从数据库读取数据并用redis写入数据。
我发现更新数据库后有几种方法可以更新redis。例如:
我有点困惑,不知道如何选择。
你能否告诉我每种方式的优缺点,最好告诉我更新redis的其他方法或推荐一些关于这个问题的博客。
答案 0 :(得分:7)
应使用您在问题中描述的第三种方法同步实际数据存储和缓存。
在向最终存储(即SQL数据库)添加数据时,需要将此数据排入某个服务总线或消息队列,并让某些异步服务使用某种后台进程完成整个同步。
您不希望遇到这种情况(不使用服务总线和异步服务时):
关于使用Redis密钥到期,这是一个好主意。由于Redis可以使用其内置机制使密钥到期,因此您不应该在整个后台进程中实现密钥到期。如果存在密钥是因为它仍然有效。
顺便说一下,你不会总是在这种情况下(如果一个密钥没有过期,则意味着它不应该被覆盖)。它可能取决于您的实际域名。