2017-12-18 5 views
0

PHP 스크립트에서 Redis 클라이언트를 처리하는 데 nrk/predis을 사용하고 있습니다. 접두사를 Predis와 함께 사용하는 방법?

나는이 클라이언트에서 사용되는 모든 키에 접두사 설정하기 위해 노력하고있어 :

$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") 만 사용하는 것입니다.

터미널을 점검했는데 키가 정상적으로 보입니다. (수동으로 항목을 삽입했습니다)

답변

2

prefix 옵션을 연결 기능의 두 번째 인수로 새 배열에 배치하십시오. 내 생각 엔 prefixnew 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');를 호출하고

+0

감사합니다 REDIS_PREFIX에 주어진 당신의 접두사를 사용할 수 있도록해야! 그걸 알아 채지 못 했어. 멍청한 실수 – HtmHell