SWAPDB:互换数据库
SWAPDB
命令接受两个数据库号码作为输入,然后对指定的两个数据库实行互换,最后返回 OK
作为结果:
- SWAPDB x y
在 SWAPDB
命令执行完毕之后,原本储存在数据库 x
中的键值对将出现在数据库 y
中,而原本储存在数据库 y
中的键值对将出现在数据库 x
中。
举个例子,对于以下这个包含键 k1
、 k2
和 k3
的 0 号数据库:
- db0> KEYS *
- 1) "k3"
- 2) "k2"
- 3) "k1"
以及以下这个包含键 k4
、 k5
和 k6
的 1 号数据库来说:
- db1> KEYS *
- 1) "k5"
- 2) "k4"
- 3) "k6"
如果我们执行以下命令,对 0 号数据库和 1 号数据库实行互换:
- db0> SWAPDB 0 1
- OK
那么在此之后,原本储存在 0 号数据库中的键 k1
、 k2
和 k3
将出现在 1 号数据库中:
- db1> KEYS *
- 1) "k3"
- 2) "k2"
- 3) "k1"
而原本储存在 1 号数据库中的键 k4
、 k5
和 k6
将出现在 0 号数据库中:
- db0> KEYS *
- 1) "k5"
- 2) "k4"
- 3) "k6"
注解
因为互换数据库这一操作可以通过调整指向数据库的指针来实现,这个过程不需要移动数据库中的任何键值对,所以 SWAPDB
命令的复杂度是 O(1) 而不是 O(N) ,并且执行这个命令也不会导致服务器阻塞。
其他信息
属性 | 值 |
---|---|
复杂度 | O(1) |
版本要求 | SWAPDB 命令从 Redis 4.0 版本开始可用。 |