zoukankan      html  css  js  c++  java
  • redis基本的事务操作

    redis基本的事务操作

    redis事务本质:一组命令的集合。一个事务中的所有命令都会被序列化,在事务执行的过程中,会按照顺序执行。一次性、顺序性、排他性的执行一系列命令。

    redis事务没有隔离级别的概念:所有命令在事务中,并没有直接被执行。只有发起执行命令的时候才会执行

    redis单条命令是有原子性的,但是事务不保证原子性

    redis的事务操作:

    • 开启事务
    • 命令入队
    • 执行事务
    127.0.0.1:6379> multi # 开启事务
    OK
    127.0.0.1:6379(TX)> set key1 value1 # 命令入队
    QUEUED
    127.0.0.1:6379(TX)> set key2 value2 # 命令入队
    QUEUED
    127.0.0.1:6379(TX)> get key1 # 命令入队
    QUEUED
    127.0.0.1:6379(TX)> exec # 执行事务
    1) OK
    2) OK
    3) "value1"
    

    放弃事务:事务中的命令都不会被执行

    127.0.0.1:6379> multi # 开启事务
    OK
    127.0.0.1:6379(TX)> set key1 value1 # 命令入队
    QUEUED
    127.0.0.1:6379(TX)> set key2 value2
    QUEUED
    127.0.0.1:6379(TX)> DISCARD # 放弃事务
    OK
    127.0.0.1:6379> get key1 # 事务没有被执行,拿不到key1的值
    (nil)
    

    事务执行发生编译型异常(代码有问题,命令有错),事务中所有命令都不会被执行

    127.0.0.1:6379> multi # 开启事务
    OK
    127.0.0.1:6379(TX)> set key1 value1 # 命令入队
    QUEUED
    127.0.0.1:6379(TX)> set key2 value2
    QUEUED
    127.0.0.1:6379(TX)> getset key1 # 命令错误,编译型异常
    (error) ERR wrong number of arguments for 'getset' command
    127.0.0.1:6379(TX)> set key3 value3
    QUEUED
    127.0.0.1:6379(TX)> exec # 执行事务失败
    (error) EXECABORT Transaction discarded because of previous errors.
    127.0.0.1:6379> get key1 # 事务中的命令没有执行
    (nil)
    

    事务执行发生运行时异常(1/0),那么执行命令的时候,其他命令是可以正常执行的,错误命令抛出异常

    127.0.0.1:6379> set key1 "hello" # key1=hello
    OK
    127.0.0.1:6379> multi # 开启事务
    OK
    127.0.0.1:6379(TX)> incr key1 # key1自增1
    QUEUED
    127.0.0.1:6379(TX)> set key2 value2
    QUEUED
    127.0.0.1:6379(TX)> set key3 value3
    QUEUED
    127.0.0.1:6379(TX)> get key3
    QUEUED
    127.0.0.1:6379(TX)> exec # 执行事务
    1) (error) ERR value is not an integer or out of range # 运行时异常
    2) OK # 命令正常执行
    3) OK
    4) "value3"
    127.0.0.1:6379> get key2 
    "value2"
    
    记得快乐
  • 相关阅读:
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
  • 原文地址:https://www.cnblogs.com/Y-wee/p/14560774.html
Copyright © 2011-2022 走看看