事务
*ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
redis 通过multi exec watch 实现事务
- 事务开始
- 命令入队
- 事务执行
一、事务开始– mulit
mulit 标志事务开始,将客户端从非事务状态切换到事务状态
# redis-cli 127.0.0.1:6379> multi OK 127.0.0.1:6379> set sc 'sc-001'QUEUED 127.0.0.1:6379> set sc 'sc-002'QUEUED 127.0.0.1:6379> set sc 'sc-003'QUEUED 127.0.0.1:6379> get scQUEUED 127.0.0.1:6379> exec 1) OK 2) OK 3) OK 4) "sc-003" 127.0.0.1:6379>
二、命令入队
客户端-非事务状态:输入的命令立即执行
客户端-事务状态:输入命令exec discard watch mulit 会立即执行,其他不立即执行,而将命令入队等待执行。
三、事务执行–exec
exec 命令 执行事务。遍历事务命令队列,执行所有命令返回客户端。
四、watch命令
乐观锁 — exec执行前,监视的键只要有修改,拒绝执行事务。返回客户端空回复
修改命令执行后会将客户端的REDIS_DIRTY_CAS标识打开,标志客户端的事务安全性被破坏。
五、Redis事务ACID性质
1、原子性,要不都执行,要不都不执行。redis不支持回滚机制。
2、一致性,因为redis对错误命令不执行,所以数据库可以避免没有非法或者无效数据。
入队错误、执行错误、服务器停机
3、隔离性,redis是单线程方式执行事务,事务有隔离性。
4、耐久性,redis开启了持久化,那么事务也会持久化到硬盘。
今天的文章redis事务处理_筑美壹号设计事务分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/49630.html