gpt4 book ai didi

ruby - 用于使用 ruby​​ 大量插入 redis 的 ram 文件?

转载 作者:可可西里 更新时间:2023-11-01 11:22:22 25 4
gpt4 key购买 nike

我想使用 ruby​​ 将来自数据仓库的大量数据插入到 redis 中。

来自redis-documentation我知道使用批处理命令的文件是正确的方法。

但是我不想获取所有数据,将其写在我的驱动器上(也就是写下批处理文件),以便它可以进一步发送到 redis。

有没有办法跳过这一步?我虽然创建一些可以传递给 redis 的“memfile”,同时存储在 ram 而不是硬盘上可能是一个答案,但我真的不知道这是否存在。

谢谢!

最佳答案

  1. 您的数据是否真的足够大?您的速度要求是否真的足够苛刻以至于仅通过管道执行此操作速度不够快?的确,批处理整个事情,或者用 Redis 的协议(protocol)重写它会更快,但除非你的要求真的很极端,否则不要在这上面浪费你的时间。我已经通过流水线插入了数百万个 HSET,这只需要几秒钟。至少在你浪费时间构建你可能不需要的东西之前尝试这个。
  2. 您绝对需要在 Ruby 中执行此操作吗?如果您的要求确实如此极端以至于简单的管道不够快,请尝试将数据流通过管道传输到 redis-cli --pipe。这看起来像: sh getDataFromServer.sh | redis-cli --pipe,并且不需要您将大文件写入磁盘(尽管如果这样做可能会更快,因为以上内容将取决于您的网络速度)。

长话短说;不要做你不需要的优化。如果您在可预见的 future 仅通过流水线就可以摆脱困境,就去做吧。如果您在可预见的 future 需要稍微快一点的速度,那就做得足够了。 除非确实需要,否则不要编写 Redis 协议(protocol)或将 Redis 写入磁盘。

关于ruby - 用于使用 ruby​​ 大量插入 redis 的 ram 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19594585/

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