本文已收录于专栏
上千人点赞收藏,全套Redis学习资料,大厂必备技能!
目录
1、简介
Redis类似大多数成熟的数据库系统一样,提供了事务机制。Redis的事务机制非常简单,它没有严格的事务模型,无法像关系型数据库一样保证操作的原子性。
Redis事务最大的作用是保证多个指令的串行执行,它可以借助于Redis单线程读写的特性,保证Redis事务中的指令不会被事务外的指令打搅,不过要注意它不是原子性的。
完整事务案例:
multi开启一个事务之后,所有指令都不执行,而是缓存到事务队列中,直到服务器接收到exec指令,才开始执行整个事务中的指令。事务全部指令执行完毕后,一次性返回全部的结果。
使用Redis事务,一个最需要注意的问题是,指令多,网络开销高;因此我们一定要结合管道pipeline一起使用,这样可以将多次网络io操作压缩成单次。
2、指令介绍
2.1 简介
Redis事务相关的指令有五个,分别是MULTI、EXEC、DISCARD、WATCH、UNWATCH
指令 | 指令作用 | 返回值 |
---|---|---|
MULTI | 标记一个事务块的开始 | 总是返回 OK |
EXEC | 执行所有事务块内的命令 | 事务块内所有命令的返回值,按命令执行的先后顺序排列。当操作被打断时,返回空值 nil |
DISCARD | 取消事务,放弃执行事务块内的所有命令,如果正在使用 WATCH |