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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现