Redis复制(replication)不需要使用Lua。

在介绍问题和问题之前,有一些重要的信息。

Redis Lua 脚本复制脚本本身,而不是单个命令,无论是对从节点还是对 AOF 文件。这是必需的,因为通常脚本比普通方式执行命令快一到两个数量级,因此为了使从节点能够应对主复制链路速度和每秒命令数,这是唯一的可用解决方案。

Lua scripting: determinism, replication, AOF (github issue))中有关于这个决策的更多信息。

问题

有没有方法或解决方法可以复制单个命令而不是执行 LUA 脚本本身?

为什么?

我们将 Redis 用作自然语言处理(多项式朴素贝叶斯)应用程序服务器。每次想要在新文本上学习时,都应该更新包含大约 1,000,000 个单词的大列表。使用 LUA 的处理时间每次运行约为 350 毫秒。使用单独的应用程序服务器(基于 hiredis)处理时间为 37 秒。

我考虑像这样的解决方法:

  • 计算完毕后,将键传输到其他(只读)服务器,使用MIGRATE
  • 偶尔保存并将 RDB 移动到其他服务器,并手动加载它。

有没有其他解决方法来解决这个问题?

点赞
用户3160475
用户3160475
2015-11-12 15:41:45