• Redis 事务


    Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:

    • 批量操作在发送 EXEC 命令前被放入队列缓存。
    • 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
    • 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。

    一个事务从开始到执行会经历以下三个阶段:

    • 监听命令 watch(key),不是必须的
    • 开始事务 multi(),开启事务
    • 命令入队,业务数据操作
    • 检测服务器 ping() ,检测服务器连接是否正常
    • 执行事务,exec(),执行事务

    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

    Redis 事务命令

  • 相关阅读:
    (10)进程---Manager数据共享
    (9)进程---JoinableQueue队列
    (8)进程---Queue队列
    (7)Pool进程池
    (6)进程---Event事件
    (5)进程--锁和信号量
    (4)进程---daemon守护进程和join阻塞
    XSLT知识点【一】
    XSL-FO知识点【一】
    XPath知识点【一】
  • 原文地址:https://www.cnblogs.com/xuey/p/13140703.html
Copyright © 2020-2023  润新知