分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

redis在php中的应用(Trancation篇)

发布时间:2023-09-06 02:23责任编辑:顾先生关键词:redis

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

redis在php中的应用(Trancation篇)

原文地址:https://www.cnblogs.com/tiger-lzl/p/9995859.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved