如何在 Predis 中使用前缀?

How to use prefix with Predis?

我在 PHP 脚本中使用 nrk/predis 来处理 Redis 客户端。

我正在尝试为该客户端中使用的所有键设置前缀:

$client = new Predis\Client([
    'scheme'    => 'tcp',
    'host'      => REDIS_IP,
    'port'      => REDIS_PORT,
    'password'  => REDIS_PASS,
    'database'  => REDIS_DB,
    'prefix'    => REDIS_PREFIX
]);

这应该会像他们client configuration中所述的那样工作。

但是 $client->exists("mykey") returns 错误,并且 $client->exists(REDIS_PREFIX . "mykey") returns 正确。

当然,我的目标是只使用$client->exists("mykey")

我在终端上检查了一下,钥匙没问题。 (我手动插入了条目)

prefix 选项放在一个新数组中作为连接函数的第二个参数。我的猜测是(在查看您链接的文档之后)prefix 不属于 new Predis\Client() 的第一组连接参数,而是属于(options 参数)的第二个参数。

将代码更改为:

$client = new Predis\Client([
    'scheme'    => 'tcp',
    'host'      => REDIS_IP,
    'port'      => REDIS_PORT,
    'password'  => REDIS_PASS,
    'database'  => REDIS_DB
], [
    'prefix'    => REDIS_PREFIX
]);

这应该允许您调用 $client->exists('mykey'); 并且它将使用您在 REDIS_PREFIX

中给出的前缀