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 事务命令

  • 相关阅读:
    WCF和Socket
    MBA-数学
    80端口被占用
    linux系统root密码忘了怎么办 三种方法快速找回root密码
    px、em、rem、%、vw、wh、vm等单位有什么区别?
    知道id如何进入
    查询两个时间段间隔多久的数据
    jsp中的判断
    判断手机登陆还是电脑登陆
    配置pom.xml、spring.xml、spring-mvc.xml、spring-mybatis.xml、web.xml
  • 原文地址:https://www.cnblogs.com/xuey/p/13140703.html
Copyright © 2011-2022 走看看