1.redis事务命令:
命令 |
作用 |
返回值 |
watch |
监视一个或多个key |
总是OK |
multi |
声明事务开始,后续命令将排队按顺序等待exec执行 |
总是OK |
exec |
顺序执行multi之后的命令,如果multi之前使用watch命令监视的键的值发生变化,执行将失败 |
执行成功时返回数组包含每个命令执行结果,失败时原生命令返回null,php-redis扩展方法返回false |
discard |
取消事务 |
总是OK |
unwatch |
取消watch监视,如果watch监视之后执行了exec或discard,会自动取消监视,不必再unwatch |
总是OK |
2.redis事务示例: <?php try { //连接本地的 Redis 服务 $redis = new Redis(); $redis->connect('127.0.0.1',6379); } catch (Exception $e){ echo $e->getMessage(); die; }
$key1 = 'x1'; $key2 = 'x2';
$redis->set($key1,'123'); $redis->set($key2,'234');
try { //监视一个(或多个)key,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断 $redis->watch(array($key1,$key2));
//模拟监视 key 被打断 //$redis->set($key1,'12345');
$redis->multi(); $redis->set($key1,'1123'); $redis->set($key2,'2123'); //执行事务块内的所有命令 $status = $redis->exec(); //失败则取消事务 if (!$status) { $redis->discard(); } } catch (Exception $e){ echo $e->getMessage(); die; }
var_dump($status);
echo '<br>';
echo $redis->get($key1) . '-' .$redis->get($key2);
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|