在不使用任何库(如 predis)的情况下,从 PHP 调用 Redis 的最佳方法是什么?
我目前使用
exec
命令,但想知道是否有更好的方法。exec('redis-cli SET foo bar');
其次,您如何执行交易?我可以从命令行这样做...
$ redis-cli redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> INCR FOO QUEUED redis 127.0.0.1:6379> INCR BAR QUEUED redis 127.0.0.1:6379> EXEC 1) (integer) 1 2) (integer) 1
但是,如果我尝试这样做,每个单独的命令都会单独执行,而不是在同一事务中,我最终会收到错误
(error) ERR EXEC without MULTI
exec('redis-cli MULTI'); exec('redis-cli INCR FOO'); exec('redis-cli INCR BAR'); exec('redis-cli EXEC');
最佳答案
使用 Predis,您将拥有类似...
$redis = new \Predis\Client('tcp://ip.address:port');
$redis->multi();
$redis->incr('foo');
$redis->incr('bar');
$redis->lrange('mylist', 0, -1);
$data = $redis->exec();
$data 可能如下所示,具体取决于这些计数器的开头...:
[
1, // foo
2, // bar
['fish', 'beans', 'bar', 'baz'], // whatever was in 'mylist'
]
关于php - 如何在 PHP 中执行 Redis 事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15595230/