redis 在 php 中的应用(事务 [ Transaction ] 篇)
本文为我阅读了 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 ] 篇)相关推荐
- Oracle 存储过程 中如何使用事务Transaction 自主事务 自治事务
Oracle基础 存储过程和事务 一.事务和存储过程 在存储过程中如何使用事务.当需要在存储过程中同时执行多条添加.修改.删除SQL语句时,为了保证数据完整性,我们需要使用事务.使用方式和在PL-SQ ...
- MySQL 事务(Transaction)篇
一.事务的定义 1.定义: 事务也称一个最小的不可再分的工作单元,是由一个或多个SQL语句所组成的操作序列,通常一个事务对应一个完整的业务(insert.update.delete语句共同联合完成), ...
- php redis key,redis 在 php 中的应用(key篇)
KEY(键) Redis DEL 命令用于删除已存在的键.不存在的 key 会被忽略. $redis = new redis(); $redis->connect('127.0.0.1',637 ...
- Redis 高级特性(1)—— 事务 过期时间 排序
1. Redis 高级特性 -- 事务 事务概念 Redis 中的事务 (transaction)是一组命令的集合.事务同命令一样是 Redis 的最小执行单位,一个事务中的命令要么都执行,要么都不执 ...
- seata 如何开启tcc事物_如何能在实战中完成分布式事务?知道这些点很重要
在这篇文章中我详细介绍了分布式事务是什么,实现分布式事务有哪些常用的方案,但是其中的东西很多是偏于理论,很多读者对其真正在实战上的使用可能还是有点差距.所以在前几次文章的更新中,我介绍了很多关于Sea ...
- Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁
1.NoSQL数据库 1.1 NoSQL数据库概述 NoSQL(NosQL = Not Only sQL ),意即"不仅仅是sQL",泛指非关系型的数据库.NoSQL不依赖业务逻辑 ...
- Redis高级应(2)-事务以及LUA脚本
事务 所谓事务(Transaction) ,是指作为单个逻辑工作单元执行的一系列操作 ACID回顾 Atomicity(原子性): 构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不 执 ...
- Redis+在Linux中安装使用
Redis+在Linux中安装使用 一.安装 (一).上传redis安装包 (二).进入到rpmgcc文件下 (三).解压redis-3.2.5.tar.gz (四).启动redis 二.Redis概 ...
- redis 操作5中数据类型
redis 操作5中数据类型 redis導入pom <!--redis的支持--><dependency><groupId>redis.clients</gr ...
最新文章
- 流程的python-流畅的Python
- visualSVN仓库创建及操作
- 新增功能!Trello个人应用程序登陆 Microsoft Teams
- smart700iev3 程序下载设置_分享一款Aira2下载工具
- java工具keytool生成p12数字证书文件
- HttpClient4 TIME_WAIT和CLOSE_WAIT
- Scrapy基础(八)————图片下载后将本地路径添加到Item中
- Java 算法SM2加密解密
- eXtremeComponents使用总结--1(转载)
- Windows11系统中便签小工具在哪 便签使用方法简单图解
- MyScript ---LateX公式编辑排版
- 基本类型为空导致线上空指针异常问题 java.lang.NullPointerException: cannot unbox null value
- Android studio真机调试(用小米10s为例)
- SLCP验厂辅导,SLCP验证员必须遵守验证协议中的验证规则以确保数据的质量和完整性
- (2)如何使用Artemis
- 中国城市资本流动问题探索(Python)
- 库拉托夫斯基的历史贡献
- 如何在腾讯地图上设置多种颜色的点位和自定义背景弹出框
- PCB设计之电源模块电路(LDO电源)设计
- java计算机毕业设计中小型饭馆餐饮管理系统源码+mysql数据库+系统+部署+lw文档