在填充数据库时,我想利用客户端管道。如何使用perl Redis客户端实现这一目标?
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;发布于 2014-03-03 09:42:30
文档说,您需要向set添加一个代码作为第三个参数。
若要使用管道,请将coderef参数作为最后一个参数添加到命令方法调用中。
这会把你的例子变成:
for my $i (1 .. 20000) {
$redis->set("key.$i" => "foo" x500, sub {});
}实际上,您可以对回复做一些事情,而不是空子:
一旦响应可用,就会调用提供给管道命令方法的代码。它使用两个参数,$reply和$error。如果定义了$error,它将包含由Redis服务器发送的错误回复的文本。否则,$reply是无错误的答复.对于几乎所有的命令,这意味着它是undef,或者是定义的但非引用的标量,或者是其中任何一个的数组参考;但是请参见“key”、"info“和"exec”。
它还在文档的事务处理部分中说:
警告:这些命令与管道结合时的行为仍在讨论中,您现在不应该同时使用它们。
https://stackoverflow.com/questions/22142728
复制相似问题