zoukankan      html  css  js  c++  java
  • redis的事务

    redis事务命令:
    Discard:取消事务,放弃执行事务块内的所有命令
    exec:执行所有事务快内的命令
    multi:标记一个事务块的开始
    UNwatch:取消watch命令对所有key的监视
    watch key(key ,,)
    监视一个或者多个key,如果在事务执行之前这个或这些key被其他命令所改动,那么事务将被打断

                    MULTI可以执行多个命令,只要命令正确就行,正确执行
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> set k1 v1
    QUEUED
    127.0.0.1:6379> set k2 v2
    QUEUED
    127.0.0.1:6379> get k2
    QUEUED
    127.0.0.1:6379> set k3 v3
    QUEUED
    127.0.0.1:6379> exec
    1) OK
    2) OK
    3) "v2"
    4) OK

                                    放弃事务 DISCARD
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> set k1 v1
    QUEUED
    127.0.0.1:6379> set k2 22
    QUEUED
    127.0.0.1:6379> set k3 33
    QUEUED
    127.0.0.1:6379> DISCARD
    OK
    127.0.0.1:6379> get k2
    "v2"

                                       全体连坐:
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> set k1 v1
    QUEUED
    127.0.0.1:6379> set k2 v2
    QUEUED
    127.0.0.1:6379> set k3 v3
    QUEUED
    127.0.0.1:6379> getset k3
    (error) ERR wrong number of arguments for 'getset' command
    127.0.0.1:6379> set k4 v4
    QUEUED
    127.0.0.1:6379> EXEC
    (error) EXECABORT Transaction discarded because of previous errors.

                                      冤有头债有主,谁错不执行,其他的继续执行
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> incr k1
    QUEUED
    127.0.0.1:6379> set k2 22
    QUEUED
    127.0.0.1:6379> set k3 v3
    QUEUED
    127.0.0.1:6379> set k4 v4
    QUEUED
    127.0.0.1:6379> EXEC
    1) (error) ERR value is not an integer or out of range
    2) OK
    3) OK
    4) OK

      WATCH的方法先watch,然后再把balance改为800,再开启事务,让balance减少20,debt增加20,exec后事务失败
    127.0.0.1:6379> WATCH balance
    OK
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> DECRBY balance 20
    QUEUED
    127.0.0.1:6379> INCRBY debt 20
    QUEUED
    127.0.0.1:6379> EXEC
    (nil)
    127.0.0.1:6379> get balance
    "800"
    127.0.0.1:6379> set balance 800
    OK

                                        unwatch:取消watch命令对所有key的监视
    127.0.0.1:6379> get balance
    "500"
    127.0.0.1:6379> get debt
    "20"
    127.0.0.1:6379> WATCH balance
    OK
    127.0.0.1:6379> set balance 500
    OK
    127.0.0.1:6379> UNWATCH
    OK
    127.0.0.1:6379> WATCH balance
    OK
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> set balance 80
    QUEUED
    127.0.0.1:6379> set debt 20
    QUEUED
    127.0.0.1:6379> EXEC
    1) OK
    2) OK

  • 相关阅读:
    hadoop-0.20-集群搭建___实体机通过SSH访问基于VM安装的Linux
    Kettle的集群排序 2——(基于Windows)
    在使用Kettle的集群排序中 Carte的设定——(基于Windows)
    POJ3083
    本地tomcat访问mysql数据库
    正则表达式——(一)
    图论——读书笔记 (深度优先搜索)
    c# 反射+Attribute 实现获取Description的两种做法
    排序方法的总结
    c# 初识Actor Model
  • 原文地址:https://www.cnblogs.com/mxf97826/p/8687671.html
Copyright © 2011-2022 走看看