redis事务

来源:互联网 发布:linux 用户配置文件 编辑:程序博客网 时间:2024/05/22 15:35

由于redis是单线程来处理所有client的请求,所以redis只能保证一个redis-client发起的事务中的命令可以连续的执行,而中间不会插入其他redis-client的命令。
一般情况下redis在接受到一个client发来的命令后会立即处理并 返回处理结果,但是当一个client在一个连接中发出multi命令有,这个连接会进入一个事务上下文,该连接后续的命令并不是立即执行,而是先放到一 个队列中。当从此连接受到exec命令后,redis会顺序的执行队列中的所有命令。并将所有命令的运行结果打包到一起返回给client.然后此连接就 结束事务上下文

  1. 事务关键字
MULTI、EXEC、DISCARD、WATCH1.MULTI用来组装一个事务;2.EXEC用来执行一个事务;3.DISCARD用来取消一个事务;4.WATCH用来监视一些key,一旦这些key在事务执行之前被改变,则取消事务的执行。
  1. 事务常见错误
    1):执行exec之前的错误(拒绝执行该事务)
    2):执行exec之后的错误(不理睬这些错误,继续执行)
    【WATCH】本身的作用是“监视key是否被改动过”,而且支持同时监视多个key,只要还没真正触发事务,WATCH都会尽职尽责的监视,一旦发现某个key被修改了,在执行EXEC时就会返回nil,表示事务无法触发。
  2. 操作示例
    1):组装一个事务
    这里写图片描述
    2):取消一个事务
    这里写图片描述
    3):监视
    这里写图片描述
    4):exec后错误
    这里写图片描述
    5):exec前错误
    这里写图片描述
原创粉丝点击