03.Redis_事务
Redis_事务
Redis的事务定义
Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
Redis事务的主要作用就是串联多个命令防止别的命令插队。
指令
- Multi:标记一个事务块的开始。
- Exec:执行所有事务块内的命令。
- discard:取消事务,放弃执行事务块内的所有命令。
- UNWATCH:取消 WATCH 命令对所有 key 的监视。
- WATCH key [key ...]:监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。可用于实现乐观锁:watch+事务操作
组队中某个命令出现了报告错误,执行时整个的所有队列都会被取消。
如果执行阶段某个命令报出了错误,则只有报错的命令不会被执行,而其他的命令都会执行,不会回滚。
超卖等问题解决方案
- 使用乐观锁避免超卖问题
问题:已经秒光,可是还有库存。原因,就是乐观锁导致很多请求都失败。先点的没秒到,后点的可能秒到了。
- 连接超时,通过连接池解决
节省每次连接redis服务带来的消耗,把连接好的实例反复利用。
通过参数管理连接的行为
- 解决库存遗留问题
使用lua脚本
浙公网安备 33010602011771号