Как я могу использовать случайную команду redis для redisbloom - PullRequest
0 голосов
/ 20 января 2020

Я использую perl Redis.pm для всех заданий sys с redis Все стандартные команды redis доступны в модуле

Но для пользовательского модуля загрузки, как я могу использовать это в perl

Например, Redisbloom

В командной строке это работает

127.0.0.1:6379> bf.add names tom
(integer) 1

Я не уверен, что я могу сделать это скрипт perl. Это не работает

my $n = $redis->cmd("bf.add","names","tom");

Ответы [ 2 ]

2 голосов
/ 21 января 2020

Я бы попробовал:

use Redis;
my $redis = Redis->new;
my $n = $redis->__std_cmd("bf.add", "names", "tom");

Клиент Perl делает невозможным использование точек в именах команд - похоже, это обходится.

1 голос
/ 20 января 2020

Насколько я могу судить, модуль Redis не поддерживает вызов пользовательских команд. Mojo :: Redis делает.

use strict;
use warnings;
use Mojo::Redis;
my $redis = Mojo::Redis->new('redis://127.0.0.1:6379/0')->encoding(undef);
$redis->db->call('bf.add', 'names', 'tom');

Обратите внимание, что атрибут кодирования установлен здесь на undef, чтобы соответствовать поведению модуля Redis - если вы будете иметь дело с любым не -ascii текстовые данные и хотите, чтобы они были автоматически закодированы и декодированы для хранения, вы можете оставить его по умолчанию UTF-8.

...