如何在 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
中给出的前缀
我在 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