大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说PHP使用Redis的事务命令「建议收藏」,希望您对编程的造诣更进一步.
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);
代码100分
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8701.html