2014-02-13 1 views
3

может использовать массив в качестве второго параметра hmget() для извлечения нескольких полей за один раз? например $ client-> hmget ($ key, $ fields); // $ fields - массивcan predis hmget использовать массив как параметр из нескольких полей

Может ли он также принимать множество параметров строки в виде полей? например: $ client-> hmget ($ key, $ field1, $ field2, $ field3);

ответ

5

Predis поддерживает два способа передачи нескольких клавиш (или клавиши со значениями команд) для VARIADIC Redis. Первый в основном по той же сигнатуры команд, как определено Redis documentation, поэтому использование HMSET и HMGET в качестве примеров вы будете иметь:

$redis->hmset("hash", "field:1", "value:1", "field:2", "value:2"); 
$values = $redis->hmget("hash", "field:1", "field:2"); 

но вы также можете передать список ключей и/или значений в качестве одного аргумент массива:

$redis->hmset("hash", array("field:1" => "value:1", "field:2" => "value:2")); 
$values = $redis->hmget("hash", array("field:1", "field:2")); 

Выбор того, какой из них использовать, на самом деле является вопросом предпочтения.

+0

Извините @nrk, для меня работает только второй подход. В документации https://github.com/phpredis/phpredis#hmget предлагается массив. Первый подход возвращает false. Это зависит от конкретной версии? –

+0

@SanathBallal phpredis не является Predis, вопрос (и мой ответ) был связан с последним. – nrk

+0

Правильно. Спасибо @nrk –

0

От Predis хранилище

$redis->hmset('metavars', 'foo', 'bar', 'hoge', 'piyo', 'lol', 'wut'); 

$redis->hmget('metavars', 'foo', 'hoge', 'unknown')); 
+1

Плохо проголосовать. Что случилось, если вы не уверены на 100% и просто хотите уточнить неопределенность 1% –