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
请登录之后再进行评论