• 中文
    • English
  • 注册
  • 查看作者
    • 8-1 11-Redis的特性

      Redis默认有16个数据库,下标从0~15,默认使用下标为0的数据库,可以使用select 下标 来切换数据库,使用move命令可以将一个数据库的指定key移动到另一个数据库中

      jia:0>move days 1
      "1"
      
      jia:0>select 1
      "OK"
      
      jia:1>keys *
       1)  "days"

      Redis也是支持事务的,一个事务从开始到执行有以下几个步骤:

      • multi:开始事务

      • 添加各种命令到命令队列中

      • exec:执行事务,一次执行所有的命令,相当于mysql中的commit

      • discard:取消事务,相当于mysql中的rollback

      使用Redis desktop Manager新建两个链接,分别命名为a链接和b链接,在a链接中执行以下命令:

      a:0>set num 1
      "OK"
      
      a:0>get num
      "1"

      在b链接中,获取num,值还是1

      b:0>get num
      "1"

      回到a链接,将num+1,

      a:0>incr num
      "2"
      
      a:0>get num
      "2"

      此时无论是a链接还是b链接,执行get num得到的值都是2,接下来在a连接中开启事务,并执行三条命令

      a:0>multi
      "OK"
      
      a:0>incr num
      "QUEUED"
      
      
      a:0>get num
      "QUEUED"
      
      a:0>incr num
      "QUEUED"

      再次回到b链接,此时执行get num的值依旧是2

      b:0>get num
      "2"

      回到a链接,提交事务,之前执行的三条命令全部被执行

      a:0>exec
       1)  "3"
       2)  "3"
       3)  "4"

      此时无论是a链接还是b链接,执行get num得到的值都是4了,接下来再次在a链接中开启事务,但是不提交,而是选择回滚:

      a:0>multi
      "OK"
      
      a:0>incr num
      "QUEUED"
      
      a:0>get num
      "QUEUED"
      
      a:0>discard
      "OK"
      
      a:0>get num
      "4"

      此时无论是a链接还是b链接,执行get num得到的值依旧还是4

      山东·日照
    • 0
    • 0
    • 0
    • 916
    • zjmarina

      请登录之后再进行评论

      登录

      赞助本站

      • 支付宝
      • 微信
      • QQ

      感谢一直支持本站的所有人!

      单栏布局 侧栏位置: