# 图片回复
# 图片回复
看看
# 图片回复
# 图片回复
感谢分享
性别男,爱好女可还行
# 图片回复
# 图片回复
# 图片回复
哈喽的
可可爱爱
首页
网站统计
关于本站
在线留言
友链申请
高清壁纸
论坛
开往
虫洞
推荐
Linux命令
资源网
Search
1
京东呆瓜搭建青龙面板+xdd-plus机器人+nvjdc配置
3,663 阅读
2
Typecho Cuteen主题美化
3,327 阅读
3
傻妞机器人最新版安装教程
2,886 阅读
4
Joe 主题 6.xx 底部增强,显示标签及二维码分享
2,491 阅读
5
好久不见之网站底部样式
2,300 阅读
Linux
Shell
Mysql
Typecho
网络
其他
Redis
登录
Search
标签搜索
Linux
Typecho
美化
Nginx
Shell
综合架构
Mysql
Joe
源码
Web
数据备份
命令
Ansible
k8s
定时任务
视频
网易云
白嫖
网络
Rsync
小黑
累计撰写
156
篇文章
累计收到
890
条评论
博主
3月14日
在线
首页
栏目
Linux
Shell
Mysql
Typecho
网络
其他
Redis
页面
网站统计
关于本站
在线留言
友链申请
高清壁纸
推荐
Linux命令
资源网
开往
搜索到
1
篇与
事务
的结果
2021-09-21
Redis事务
{message type="error" content="Rise单条命令保存原子性,但是事务不保证原子性!"/}Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段:开始事务。(multi)命令入队。执行事务。(exec)正常执行事务127.0.0.1:6379> multi #开启事务 OK 127.0.0.1:6379> set k1 v1 QUEUED 127.0.0.1:6379> set k2 v2 QUEUED 127.0.0.1:6379> get k2 QUEUED 127.0.0.1:6379> set k3 v3 QUEUED 127.0.0.1:6379> exec #执行事务 1) OK 2) OK 3) "v2" 4) OK放弃事务127.0.0.1:6379> multi OK 127.0.0.1:6379> set k1 v1 QUEUED 127.0.0.1:6379> set k2 v2 QUEUED 127.0.0.1:6379> set k3 v3 QUEUED 127.0.0.1:6379> DISCARD #取消事务如果编译出现异常(命令输错),事务中的所有命令都不会被执行运行时异常,如果事务队列中存在语法性,那么执行命令时,其他命令是可以正常运行的,错误命令抛出异常监控 watch悲观锁 乐观锁Redis 测试监视测试127.0.0.1:6379> set money 100 OK 127.0.0.1:6379> set out 0 OK 127.0.0.1:6379> watch money #监视 money OK 127.0.0.1:6379> MULTI #事务正常结束,数据期间没有发生变动,这个时候就正常执行成功 OK 127.0.0.1:6379> DECRBY money 20 QUEUED 127.0.0.1:6379> INCRBY out 20 QUEUED 127.0.0.1:6379> exec测试多线程修改值,使用watch可以当作redis的乐观锁操作127.0.0.1:6379> WATCH money #监控 OK 127.0.0.1:6379> MULTI OK 127.0.0.1:6379> DECRBY money 20 QUEUED 127.0.0.1:6379> INCRBY out 10 QUEUED 127.0.0.1:6379> exec #执行之前,另外一个线程,修改了我们的值,这个时候就会执行失败 (nil)如果修改失败,获取最新的值就好
2021年09月21日
176 阅读
0 评论
0 点赞