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