2017-12-18 26 views
0

PHPスクリプトでRedisクライアントを処理するのにnrk/predisを使用しています。Predisでprefixを使用するには?

私はこのクライアントで使用されるすべてのキーにプレフィックスを設定しようとしている:

$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オプションを接続関数の2番目の引数として新しい配列に配置します。私の推測は、prefixnew Predis\Client()の最初の接続引数セットに属していないが、(optionsパラメータの)2番目の引数に属していると思う。

変更し、これにコード:

$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

+0

に与えられたあなたの接頭辞を使用することができなければなりません!それに気付かなかった。ダムの間違い – HtmHell

関連する問題