zoukankan      html  css  js  c++  java
  • 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 事务命令

  • 相关阅读:
    第四次博客作业-结对项目
    软件工程第三次作业——关于软件质量保障初探
    java 自动生成四则运算式
    《构建之法》第一章学习笔记
    给大家分享一个小程序—2048
    Java异常处理认识
    轻松定位CPU飙高问题
    接手​「烂摊子」,管理者怎么办?
    业务中台建设篇
    互联网巨头“大中台,小前台”战略
  • 原文地址:https://www.cnblogs.com/xuey/p/13140703.html
Copyright © 2011-2022 走看看