如何使用随机 redis 命令进行 redisbloom

How can I use a random redis command for redisbloom

我正在使用 perl Redis.pm 处理所有带有 redis 的系统作业 模块

中提供了所有标准的 redis 命令

但是对于自定义加载模块,我如何在 perl 中使用它

例如 Redisbloom

在命令行上有效

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

我不确定我能做的是 perl 脚本。这不起作用

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

据我所知,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

我会尝试:

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

Perl 客户端无法在命令名称中使用句点 - 这似乎可以解决这个问题。