首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis流水线

Redis流水线
EN

Stack Overflow用户
提问于 2014-03-03 09:17:26
回答 1查看 1.3K关注 0票数 2

在填充数据库时,我想利用客户端管道。如何使用perl Redis客户端实现这一目标?

代码语言:javascript
复制
use Redis;

my $redis = Redis->new or die "No redis server";

$redis->multi;
for my $i (1 .. 20000) {

  $redis->set("key.$i" => "foo" x500);
}
$redis->exec;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-03 09:42:30

文档说,您需要向set添加一个代码作为第三个参数。

若要使用管道,请将coderef参数作为最后一个参数添加到命令方法调用中。

这会把你的例子变成:

代码语言:javascript
复制
for my $i (1 .. 20000) {
  $redis->set("key.$i" => "foo" x500, sub {});
}

实际上,您可以对回复做一些事情,而不是空子:

一旦响应可用,就会调用提供给管道命令方法的代码。它使用两个参数,$reply和$error。如果定义了$error,它将包含由Redis服务器发送的错误回复的文本。否则,$reply是无错误的答复.对于几乎所有的命令,这意味着它是undef,或者是定义的但非引用的标量,或者是其中任何一个的数组参考;但是请参见“key”、"info“和"exec”。

它还在文档的事务处理部分中说:

警告:这些命令与管道结合时的行为仍在讨论中,您现在不应该同时使用它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22142728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档