关于redis事务命令、乐观锁

redis的事务不是原子性的,也就是在事务中执行的时候出现问题,是不会回滚的,可以理解为做一个批量操作,在事务被执行之前,所有需要操作都会放在队列中缓存。
实行步骤
(1) 开启事务(miuti)
(2)命令入队(其他命令)
(3)执行事务(exec)
注意
(1)当代码有问题、命令有问题时,即编译时异常,事务中所有命令都不会被执行;
(2)当运行时异常时(1/0),事务中存在语法问题,执行命令时,错误命令抛出异常,其他命令正常运行。
1、redis事务是以miuti来开启一个事务,以exec作为执行的命令。
关于redis事务命令、乐观锁_第1张图片
2、取消事务执行discard,取消后事务中的命令都不会被执行
关于redis事务命令、乐观锁_第2张图片
3、监听key:watch
(1)在开启事务之前,监听某个key后开启事务
关于redis事务命令、乐观锁_第3张图片
(2)开启另外一个窗口对key为“string”进行插入数据,数据为事务中要插入的数据
在这里插入图片描述
(3)执行事务
关于redis事务命令、乐观锁_第4张图片
事务被中断 如何解决?
先使用 unwitch 解锁,后在 witch 监听,从而获取最新的值,这个就是 乐观锁 ,在mysql中一般是获取version。
4、unwatch:取消监听所有key

你可能感兴趣的:(redis,redis,缓存,数据库)