2014-10-29 57 views
2

我正在尝试使用Redis和PHP进行一些操作,并且在与SETSSMEMBERS一起使用时遇到了问题。PHPRedis和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的文档说明。

有人可以帮助我吗?

+0

它似乎工作正常,当我们删除'MULTI .. EXEC' – GeoffreyB 2014-10-29 14:49:44

回答

0

您应该检查$ redis-> exec()的结果而不是smembers的结果。 MULTI/EXEC块的原理是命令执行延迟到EXEC命令。此时,所有命令都会以原子方式执行,并将其结果发送回客户端。

见这个例子:https://github.com/nicolasff/phpredis#transactions

注意,在使用MULTI/EXEC块里面只有一个命令是没有意义的,不会带来任何好处。

+0

是正确的,谢谢你的回答。 – GeoffreyB 2014-10-30 11:48:25