03.Redis_事务

Redis_事务


Redis的事务定义

Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

Redis事务的主要作用就是串联多个命令防止别的命令插队。

指令

菜鸟教程-Redis事务

  • Multi:标记一个事务块的开始。
  • Exec:执行所有事务块内的命令。
  • discard:取消事务,放弃执行事务块内的所有命令。
  • UNWATCH:取消 WATCH 命令对所有 key 的监视。
  • WATCH key [key ...]:监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。可用于实现乐观锁:watch+事务操作

组队中某个命令出现了报告错误,执行时整个的所有队列都会被取消。

如果执行阶段某个命令报出了错误,则只有报错的命令不会被执行,而其他的命令都会执行,不会回滚。

超卖等问题解决方案

  1. 使用乐观锁避免超卖问题

问题:已经秒光,可是还有库存。原因,就是乐观锁导致很多请求都失败。先点的没秒到,后点的可能秒到了。

  1. 连接超时,通过连接池解决

节省每次连接redis服务带来的消耗,把连接好的实例反复利用。
通过参数管理连接的行为

  1. 解决库存遗留问题

使用lua脚本

posted on 2021-06-21 20:03  霍格沃兹在逃麻瓜  阅读(41)  评论(0)    收藏  举报

导航