Redis事务
是什么
Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。
如何使用
Redis 可以通过 MULTI
,EXEC
,DISCARD
和 WATCH
等命令来实现事务(transaction)功能
MULTI:开启事务
EXEC:执行事务
DISCARD:取消事务
WATCH:监听某个key,当调用 EXEC
命令执行事务时,如果一个被 WATCH
命令监视的键被修改的话,整个事务都不会执行,直接返回失败
##############################
> MULTI # 开启事务
OK
> SET USER "cjd"
QUEUED
> GET USER
QUEUED
> EXEC
1) OK # 执行事务
2) "cjd"
#############################
> MULTI
OK
> SET USER "cjd"
QUEUED
> GET USER
QUEUED
> DISCARD # 取消事务
OK
#############################
> WATCH USER
OK
> MULTI
> SET USER "cjd"
OK
> GET USER
cjd
> EXEC
ERR EXEC without MULTI
特点
- 不保证原子性:任意命令执行失败,其余命令仍会执行
- 不支持回滚:更简单便捷并且性能更好