Redis事务与可分布式锁
1 Redis 事务 1.1 Redis 事务介绍 l Redis 的事务是通过 MULTI , EXEC , DISCARD 和 WATCH 这四个命令来完成的。 l Redis 的单个命令都是 原子性 的,所以这里确保事务性的对象是 命令集合 。 l Redis 将命令集合序列化并确保处于同一事务的 命令集合连续且不被打断 的执行 l Redis 不支持回滚操作 1.2 相关命令 l MULTI 用于标记事务块的开始 。 Redis 会将后续的命令逐个放入队列中,然后使用 EXEC 命令 原子化地执行这个命令序列。 语法: multi l EXEC 在一个事务中执行所有先前放入队列的命令 ,然后恢复正常的连接状态 语法: exec l DISCARD 清除所有先前在一个事务中放入队列的命令 ,然后恢复正常的连接状态。 语法: discard l WATCH 当某个 事务需要按条件执行 时,就要使用这个命令将给定的 键设置为受监控 的状态。 语法: watch key [key…] 注意事项: 使用该命令可以实现 redis 的 乐观锁 。 l UNWATCH 清除所有先前为一个事务监控的键。 语法: unwatch 1.3 事务失败处理 l Redis 语法错误(可以理解为 编译期错误 ) l Redis 类型错误(可以理解为 运行期错误 ) l Redis 不支持事务回滚