PHPRedis и SMEMBERS

Я пробую кое-что с Redis и PHP, и столкнулся с проблемой при работе с SETS и SMEMBERS.

Я использую Symfony2 и SncRedisBundle.

$redis->multi();
// Some stuff
$result = $redis->smembers("myset");
var_dump($result);
die();
$redis->exec();

вот свалка

object(Redis)[990]
  public 'socket' => resource(841, Redis Socket Buffer)

Я немного застрял сейчас, я не знаю, как я могу работать с результатом, так как в документации php-redis ничего не видно и не объясняется.

Кто-нибудь может мне помочь?


person GeoffreyB    schedule 29.10.2014    source источник
comment
Кажется, все работает нормально, когда мы удаляем MULTI .. EXEC   -  person GeoffreyB    schedule 29.10.2014


Ответы (1)


Вы должны проверить результат $redis->exec() вместо результата smembers. Принцип блоков MULTI/EXEC заключается в том, что выполнение команд откладывается до команды EXEC. На этом этапе все команды выполняются атомарно, а их результаты отправляются обратно клиенту.

См. этот пример: https://github.com/nicolasff/phpredis#transactions.

Обратите внимание, что использование блока MULTI/EXEC только с одной командой внутри бессмысленно и не дает никаких преимуществ.

person Didier Spezia    schedule 29.10.2014