redis 事务(悲观锁和乐观锁)

坚强是说给别人听的谎言 提交于 2019-12-04 21:11:54

MUTI

  开启事务,后续的命令会被加入到同一个事务中

  事务中的操作会发送给客服端,但是不会立即执行,而是将操作放到了该事务对应的一个队列中,服务端返回QUEQUD

 

EXEC

  执行EXEC后,事务中的命令才会执行

  事务中的命令出错时,不会回滚也不会停止,而是继续执行下一步操作

 

DISCARD

  取消事务,事务队列会被清空

 

原子性:不支持,不会回滚,

隔离性:支持,事务中的命令顺序,不会被打断

持久性:不支持

一致性:不支持,要求通过乐观锁watch来实现

 

乐观锁:watch

  redis实现乐观锁机制

  机制:开启事务前,设置对数据的监听,EXEXC时,如果发生数据发生过修改,事务会自动取消(DISCARD)

  事务EXEC后,无论成败,监听会被移除

示例代码:

 

悲观锁:

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!