博了个客 2020-06-16
Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:
一个事务从开始到执行会经历以下三个阶段:
PHP 中 Redis 事务的应用
$redis = new redis(); // 创建redis对象 $redis -> connect(‘127.0.0.1‘,6379);// 连接redis 数据库 $redis -> watch(‘number‘); // 监听key是number,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断,可以监视一个(或多个) key $redis -> multi(); // 开始事务块 $redis -> set(‘favorite_fruit‘,‘cherry‘); //设置其他值 $redis -> incrBy(‘number‘,3); // 更新监听的数据 $redis -> get(‘favorite_fruit‘); // 获取值 $redis -> ping(); // 测试与服务器的连接是否仍然生效,或者用于测量延迟值,如果连接正常就返回一个 PONG ,否则返回一个连接错误。 不是事务必须的命令 var_dump($redis -> exec()); // 执行事务 //array (size=4) // 0 => boolean true // 1 => int 3 // 2 => string ‘cherry‘ (length=6) // 3 => string ‘+PONG‘ (length=5) $redis -> discard(); // 取消事务,取消 watch 命令对所有 key 的监视。 var_dump($redis -> exec()); // null