本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法)

目录:

Transaction(事务)
WATCH UNWATCH MULTI EXEC DISCARD

Transaction(事务)

1、WATCH

Redis Watch 命令用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断

语法:

redis 127.0.0.1:6379> Watch

返回值: 总是返回 OK 

可用版本:>= 2.2.0

时间复杂度:O(1)

具体实例:

$redis -> watch('number');

2、UNWATCH

Redis Unwatch 命令用于取消 WATCH 命令对所有 key 的监视

语法:

redis 127.0.0.1:6379> UNWATCH

返回值: 总是返回 OK 

可用版本:>= 2.2.0

时间复杂度:O(1)

具体实例:

$redis -> watch('number');
$redis -> unwatch();

3、MULTI

Redis Multi 命令用于标记一个事务块的开始。

事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。

语法:

redis 127.0.0.1:6379> Multi

返回值: 总是返回 OK 

可用版本:>= 1.2.0

时间复杂度:O(1)

具体实例:

$redis -> multi();

4、EXEC

Redis Exec 命令用于执行所有事务块内的命令

语法:

redis 127.0.0.1:6379> Exec

返回值: 事务块内所有命令的返回值,按命令执行的先后顺序排列。 当操作被打断时,返回空值 nil 

可用版本:>= 1.2.0

时间复杂度:事务块内所有命令的时间复杂度的总和

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll();$redis -> watch('number');$redis -> multi();
$redis -> set('favorite_fruit','cherry');
$redis -> incrBy('number',3);
$redis -> get('favorite_fruit');
$redis -> ping();
var_dump($redis -> exec());
//array (size=4)
//  0 => boolean true
//  1 => int 3
//  2 => string 'cherry' (length=6)
//  3 => string '+PONG' (length=5)

5、DISCARD

Redis Discard 命令用于取消事务放弃执行事务块内的所有命令。

语法:

redis 127.0.0.1:6379> DISCARD

返回值: 总是返回 OK 。

可用版本:>= 2.0.0

时间复杂度:O(1)。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll();$redis -> watch('number');
$redis -> unwatch();
$redis -> multi();
$redis -> set('favorite_fruit','cherry');
$redis -> incrBy('number',3);
$redis -> get('favorite_fruit');
$redis -> ping();
$redis -> discard();            // 取消事务
var_dump($redis -> exec());     // null

 如有转载,请注明出处:http://www.cnblogs.com/chrdai/p/6856619.html

转载于:https://www.cnblogs.com/chrdai/p/6856619.html

redis 在 php 中的应用(事务 [ Transaction ] 篇)相关推荐

  1. Oracle 存储过程 中如何使用事务Transaction 自主事务 自治事务

    Oracle基础 存储过程和事务 一.事务和存储过程 在存储过程中如何使用事务.当需要在存储过程中同时执行多条添加.修改.删除SQL语句时,为了保证数据完整性,我们需要使用事务.使用方式和在PL-SQ ...

  2. MySQL 事务(Transaction)篇

    一.事务的定义 1.定义: 事务也称一个最小的不可再分的工作单元,是由一个或多个SQL语句所组成的操作序列,通常一个事务对应一个完整的业务(insert.update.delete语句共同联合完成), ...

  3. php redis key,redis 在 php 中的应用(key篇)

    KEY(键) Redis DEL 命令用于删除已存在的键.不存在的 key 会被忽略. $redis = new redis(); $redis->connect('127.0.0.1',637 ...

  4. Redis 高级特性(1)—— 事务 过期时间 排序

    1. Redis 高级特性 -- 事务 事务概念 Redis 中的事务 (transaction)是一组命令的集合.事务同命令一样是 Redis 的最小执行单位,一个事务中的命令要么都执行,要么都不执 ...

  5. seata 如何开启tcc事物_如何能在实战中完成分布式事务?知道这些点很重要

    在这篇文章中我详细介绍了分布式事务是什么,实现分布式事务有哪些常用的方案,但是其中的东西很多是偏于理论,很多读者对其真正在实战上的使用可能还是有点差距.所以在前几次文章的更新中,我介绍了很多关于Sea ...

  6. Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁

    1.NoSQL数据库 1.1 NoSQL数据库概述 NoSQL(NosQL = Not Only sQL ),意即"不仅仅是sQL",泛指非关系型的数据库.NoSQL不依赖业务逻辑 ...

  7. Redis高级应(2)-事务以及LUA脚本

    事务 所谓事务(Transaction) ,是指作为单个逻辑工作单元执行的一系列操作 ACID回顾 Atomicity(原子性): 构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不 执 ...

  8. Redis+在Linux中安装使用

    Redis+在Linux中安装使用 一.安装 (一).上传redis安装包 (二).进入到rpmgcc文件下 (三).解压redis-3.2.5.tar.gz (四).启动redis 二.Redis概 ...

  9. redis 操作5中数据类型

    redis 操作5中数据类型 redis導入pom <!--redis的支持--><dependency><groupId>redis.clients</gr ...

最新文章

  1. 流程的python-流畅的Python
  2. visualSVN仓库创建及操作
  3. 新增功能!Trello个人应用程序登陆 Microsoft Teams
  4. smart700iev3 程序下载设置_分享一款Aira2下载工具
  5. java工具keytool生成p12数字证书文件
  6. HttpClient4 TIME_WAIT和CLOSE_WAIT
  7. Scrapy基础(八)————图片下载后将本地路径添加到Item中
  8. Java 算法SM2加密解密
  9. eXtremeComponents使用总结--1(转载)
  10. Windows11系统中便签小工具在哪 便签使用方法简单图解
  11. MyScript ---LateX公式编辑排版
  12. 基本类型为空导致线上空指针异常问题 java.lang.NullPointerException: cannot unbox null value
  13. Android studio真机调试(用小米10s为例)
  14. SLCP验厂辅导,SLCP验证员必须遵守验证协议中的验证规则以确保数据的质量和完整性
  15. (2)如何使用Artemis
  16. 中国城市资本流动问题探索(Python)
  17. 库拉托夫斯基的历史贡献
  18. 如何在腾讯地图上设置多种颜色的点位和自定义背景弹出框
  19. PCB设计之电源模块电路(LDO电源)设计
  20. java计算机毕业设计中小型饭馆餐饮管理系统源码+mysql数据库+系统+部署+lw文档

热门文章

  1. kotlin Bean加载失败lateinit property has not been initialized
  2. 一个form表单,多个提交按钮(实现不同功能和地址的提交)
  3. 2022-2028年中国体育赛事产业深度调研及投资前景预测报告
  4. 2022-2028年中国农副产品行业市场供需规模及未来前景分析报告
  5. 2022-2028年中国阻燃纤维行业市场研究及前瞻分析报告
  6. Jieba分词原理与解析
  7. 摄像头模组(CCM)与镀膜
  8. 【CV】深度学习中Epoch, Batch, Iteration的含义
  9. python 把2个列表或者2个元组转成字典
  10. 五分钟使你的Firefox快两倍