Redis不知道数据库中的数据是否已更新。
通常,我们使用Redis缓存数据,如下所示:
5为Redis中的键值对设置到期时间(例如分钟)。5几分钟后,此密钥将自动从Redis中删除。因此,为了使您的数据保持Redis最新更新,您可以设置较短的到期时间。但是,您的数据库必须处理大量请求。
如果要大幅减少对数据库的请求,可以设置较大的到期时间。这样,Redis在大多数情况下都可以为请求提供可能的过期数据。
您应该仔细考虑性能与陈旧数据之间的权衡。
由于事实来源驻留在您的数据库上,并且您将数据从该数据库推送到 Redis,因此您始终必须从数据库更新到 Redis,至少您创建了另一个进程来同步数据。
我的建议是运行从数据库到 Redis 的第一次完整更新,然后使用同步过程,每次您注意到数据库中的更新/创建/删除操作时,您都会将其拉到 Redis。
我不知道您使用哪个 Redis 结构在 Redis 中存储数据库记录,但我猜它可能是一个哈希,可能由您的表索引进行索引,因此同步操作将立即进行:如果在您设置的数据库中创建了一条记录一个HSET,如果删除HDEL等等。
您甚至可以省略从数据库到 Redis 的第一次完全同步,而只需清理 Redis 并启动同步过程。
如果由于某种原因您无法执行上述操作,您可以创建一个同步器守护进程,该守护进程不断从数据库读取数据,并将它们与 Redis 中的数据存储进行比较(如果它们在更新过程中以某种方式不同,或者它们在两者中都不存在)您可以在 Redis 中删除或创建条目。
| 归档时间: |
|
| 查看次数: |
1754 次 |
| 最近记录: |