Redis学习笔记-2

2020-05-10  本文已影响0人  LegendGo

Redis是事务机制

  1. Redis不支持事务的回滚机制,当事务发生错误,整个事务会继续执行下去,直到整个事务队列中所有的命令执行完成
  2. Redis 提供两种数据持久化方式
  1. Redis 是单线程程序,在事务执行时不会中断事务,其他客户端提交的各种操作都无法执行,因此你可以理解为 Redis 的事务处理是串行化的方式,总是具有隔离性的

Redis 的事务处理命令

  1. MULTI 开启一个事务
  2. EXEC 事务执行,将一次型执行事务内的所有命令
  3. DISCARD 取消事务
  4. WATCH 监视一个或是多个键
  5. UNWATCH 取消WATCH命令对所有键的监视

使用 Redis 的 WATCH 和 MULTI 命令来处理共享资源的并发操作,比如秒杀,抢票等。实际上 WATCH+MULTI 实现的是乐观锁。
在 Redis 中不存在悲观锁,事务处理要考虑到并发请求的情况,我们需要通过 WATCH+MULTI 的方式来实现乐观锁,如果监视的 KEY 没有发生变化则可以顺利执行事务,否则说明事务的安全性已经受到了破坏,服务器就会放弃执行这个事务,直接向客户端返回空回复(nil),事务执行失败后,我们可以重新进行尝试。

上一篇 下一篇

猜你喜欢

热点阅读