gpt4 book ai didi

Redis 复制而不是 RO 从站

转载 作者:IT王子 更新时间:2023-10-29 06:03:24 24 4
gpt4 key购买 nike

美好的一天!
假设我们有一个 redis-master 和几个 slave。 master 目标是存储所有数据,slave 用于为用户查询数据。但是查询有点复杂,需要存储一些临时数据。我还想将查询结果缓存几分钟。

我应该如何配置复制以保存临时数据和缓存?

最佳答案

Redis 从站有可选的支持来接受写入,但是在使用它们之前您必须了解可写从站的一些限制,因为它们有一些重要的问题。

  1. 在从服务器上创建的 key 将不支持过期。实际上,在 Redis 的最新版本中,它们似乎 可以工作,但实际上是泄漏而不是过期,直到下次您从头开始重新同步从属与主控或发出 FLUSHALL 或类似命令。这个问题有很深的原因......目前还不清楚我们是否会完全弃用可写从属,找到解决方案,或者拒绝可写从属的过期。
  2. 无论如何,您可能想要使用不同的 Redis 数字数据库(SELECT 命令)来存储您的中间数据(您可以使用 MULTI/.../MOVE/EXEC 事务以在当前选择数据所属的 DB,并将键移到其他某个 DB,因此键是否正在累积将很清楚,您可以不时刷新 FLUSHDB)。
  3. 您在从机上创建的 key 易变,当主机与从机重新同步时,它们可能会在任何时候消失。对你来说看起来不是问题,因为如果他们的 key 不再存在,你可以重新计算,但应该小心,
  4. 如果您将这个从属选为主控,您就会在其中拥有额外的 key 。

所以在这个设置中肯定有一些事情要记住,但它在某种程度上是可行的。但是,您可能需要考虑其他策略。

  1. 从属端的 Lua 脚本,以便在 Lua 中过滤您的数据。通常不如 Redis C 命令快。
  2. 直接在实际数据集中预先计算数据,以便仅使用只读命令即可进行查询。
  3. MIGRATE 以便将有趣的 key 从一个从服务器迁移到一个专门设计用于执行后计算的实例(另一个主服务器)。

如果不深入分析实际用例/问题,很难说出什么是最佳策略,但我希望这个通用指南能有所帮助。

关于Redis 复制而不是 RO 从站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30274322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com