PHP使用Redis的事务命令

1.redis事务命令:php

命令 做用 返回值
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事务示例:<?phptry { //链接本地的 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);
相关文章
相关标签/搜索