如何在 Predis 中使用前缀?

HTM*_*ell 2 php redis 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
]);
Run Code Online (Sandbox Code Playgroud)

这应该按照其客户端配置中的说明工作。

$client->exists("mykey")返回false,又$client->exists(REDIS_PREFIX . "mykey")返回true。

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

我检查了终端,密钥看起来没问题。(我已手动插入条目)

Mic*_*780 5

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
]);
Run Code Online (Sandbox Code Playgroud)

这应该允许您调用,$client->exists('mykey');并且它将使用 REDIS_PREFIX 中给定的前缀