【问题标题】:How to use prefix with Predis?如何在 Predis 中使用前缀?
【发布时间】:2017-12-18 19:38:49
【问题描述】:

我正在使用nrk/predis 在我的 PHP 脚本中处理 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") 返回 false,$client->exists(REDIS_PREFIX . "mykey") 返回 true。

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

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

【问题讨论】:

    标签: php redis predis


    【解决方案1】:

    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 中给出的前缀

    【讨论】:

    • 谢谢!没注意到。愚蠢的错误
    猜你喜欢
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2010-09-17
    • 2015-03-21
    • 2018-09-08
    • 2021-05-22
    相关资源
    最近更新 更多