我使用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")
。
我检查了终端,键看起来不错。 (我已手动插入条目)
答案 0 :(得分:2)
将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中提供的前缀