redis事务
1、redis是单线程处理所有client的请求,所以redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。 2、在一个redis事务中,redis要么执行其中的所有命令,要不都不执行。因此,redis事务能够保证原子性 命令: 1、multi:用于标记事务块的开始。redis会将后续的命令逐个放入队列中,然后才能使用exec命令原子化的执行命令序列。 2、exec:在一个事务中执行所有先前放入队列的命令,然后恢复正常连接状态。 当使用watch命令时,只有当受监控的键没有被修改时,exec命令才会执行事务中的命令这种命令利用了验证再设置(cas)的机制 3、discard:清除所有先前在一个事务中放入队列的命令,然后恢复正常连接状态,如果使用了watch命令,那么discard命令就会将当前连接监控的所有键取消监控 4、watch:当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的。 5、unwatch:清楚所有先前为一个事务监控的键,如果调用了exec或discard命令,那么就不需要手动调用unwatch命令 事务内部的错误 在一个事务的运行期间,可能会遇到两种类型的命令错误: 1、一个命令可能会在被放入队列时失败。因此