• 中文
    • 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
  • 1.1k
  • zjmarina

    请登录之后再进行评论

    登录
    单栏布局 侧栏位置: