py系统学习笔记:第六阶段:数据库编程基础:第四章:Redis的使用:126.Redis事务_Redis事务基本操作

发布于:2023-01-04 ⋅ 阅读:(221) ⋅ 点赞:(0)

  •  目录

    简述事务的执行命令

    案例一:正常执行

    案例二:放弃事务

    案例三:全体株连(组内有命令的语法出现问题)

    案例四:冤有头,债有主(组内有命令出现问题,但并不是语法问题)


  • 简述事务的执行命令

    • 事务从输入multi命令开始,之后的命令都会依次压入命令缓冲队列中,并不会执行,直到输入exec后才会被执行。
    • Redis会将之前的命令缓冲队列中的命令依次执行。组队过程中,可以通过discard来放弃组队。
  • 案例一:正常执行

    • 127.0.0.1:6379> set t1 1
      OK
      127.0.0.1:6379> multi
      OK
      127.0.0.1:6379(TX)> set id 12
      QUEUED
      127.0.0.1:6379(TX)> get id
      QUEUED
      127.0.0.1:6379(TX)> incr t1
      QUEUED
      127.0.0.1:6379(TX)> get t1
      QUEUED
      127.0.0.1:6379(TX)> exec
      1) OK
      2) "12"
      3) (integer) 2
      4) "2"
  • 案例二:放弃事务

    • 127.0.0.1:6379> multi
      OK
      127.0.0.1:6379(TX)> set name z3
      QUEUED
      127.0.0.1:6379(TX)> set age 29
      QUEUED
      127.0.0.1:6379(TX)> incr t1
      QUEUED
      127.0.0.1:6379(TX)> discard
      OK
  • 案例三:全体株连(组内有命令的语法出现问题)

    • 127.0.0.1:6379> multi
      OK
      127.0.0.1:6379(TX)> set name z3
      QUEUED
      127.0.0.1:6379(TX)> set age 29
      QUEUED
      127.0.0.1:6379(TX)> incr t1
      QUEUED
      127.0.0.1:6379(TX)> discard
      OK
      127.0.0.1:6379> multi
      OK
      127.0.0.1:6379(TX)> set name z3
      QUEUED
      127.0.0.1:6379(TX)> get name
      QUEUED
      127.0.0.1:6379(TX)> incr t1
      QUEUED
      127.0.0.1:6379(TX)> get t1
      QUEUED
      127.0.0.1:6379(TX)> set email
      (error) ERR wrong number of arguments for 'set' command
      127.0.0.1:6379(TX)> exec
      (error) EXECABORT Transaction discarded because of previous errors.
  • 案例四:冤有头,债有主(组内有命令出现问题,但并不是语法问题)

    • 127.0.0.1:6379> multi
      OK
      127.0.0.1:6379(TX)> set age 11
      QUEUED
      127.0.0.1:6379(TX)> incr t1
      QUEUED
      127.0.0.1:6379(TX)> set email abc@123.com
      QUEUED
      127.0.0.1:6379(TX)> incr email
      QUEUED
      127.0.0.1:6379(TX)> get age
      QUEUED
      127.0.0.1:6379(TX)> exec
      1) OK
      2) (integer) 3  ——在正常执行的案例中t1的值已经添加到了2,故当命令2再次对t1值进行增值(增长1个单位数值)操作时,就会由2变成3
    • 3) OK
      4) (error) ERR value is not an integer or out of range
      5) "11"

网站公告

今日签到

点亮在社区的每一天
去签到