Redis学习记录

Redis事务的本质:redis事务是一组命令的集合,一个事务中的所有命令都将被序列化,按照顺序执行,一次性、顺序性、排他性的执行一系列的命令。

redis事务不保证原子性

redis事务:

1.开启事务 (使用mulit命令开始一个事务

2.命令入队(开启事务后,每次执行的命令都会被加入一个队列中,这时候命令并不会真的执行

3.执行事务(使用exec命令

Redis事务的原子性问题

放弃事务的命令 : discard

事务中的命令都不会被执行

Redis事务的原子性问题

事务的原子性是指:事务中包括的所有操作要么都做,要么都不做

在redis中当开启事务后

1.  如果向对列中添加的命令语法存在异常那么事务中的所有操作都不会被执行

Redis事务的原子性问题

2.  如果向队列中添加的命令语法正常,但是运行时发现错误,那么事务提交的时候,除了该命令外,其他命令都将正常执行

Redis事务的原子性问题

所以redis事务不保证原子性

redis的watch命令

 Watch 命令用于监视一个(或多个) key ,如果在事务执行之前这个key 被其他命令所改动,那么事务将被打断。可以实现乐观锁Redis事务的原子性问题

Redis事务的原子性问题

 

 

 

 

 

 

 

相关文章:

  • 2021-09-09
  • 2022-12-23
  • 2021-06-19
  • 2022-02-01
  • 2021-11-16
  • 2021-12-10
  • 2022-03-07
  • 2022-12-23
猜你喜欢
  • 2021-08-06
  • 2022-12-23
  • 2021-05-27
  • 2020-04-25
  • 2021-11-27
  • 2021-05-25
相关资源
相似解决方案