SELECT:切换至指定的数据库

一个 Redis 服务器可以包含多个数据库。在默认情况下,Redis 服务器在启动时将会创建 16 个数据库:这些数据库都使用号码进行标识,其中第一个数据库为 0 号数据库,第二个数据库为 1 号数据库,而第三个数据库则为 2 号数据库,以此类推。

Redis 虽然不允许在同一个数据库中使用两个同名的键,但是由于不同数据库拥有不同的命名空间,因此在不同数据库中使用同名的键是完全没有问题的,而用户也可以通过使用不同数据库来存储不同的数据,以此来达到重用键名并且减少键冲突的目的。

比如,如果我们将用户的个人信息和会话信息都存放在同一个数据库中,那么为了区分这两种信息,程序就需要使用 user::<id>::profile 格式的键来存储用户信息,并使用 user::<id>::session 格式的键来存储用户会话;但如果将这两种信息分别存储在 0 号数据库和 1 号数据库中,那么程序就可以在 0 号数据库中使用 user::<id> 格式的键来存储用户信息,并在 1 号数据库中继续使用 user::<id> 格式的键来存储用户会话。

当用户使用客户端与 Redis 服务器进行连接时,客户端一般默认都会使用 0 号数据库,但是通过使用 SELECT 命令,用户可以从当前正在使用的数据库切换到自己想要使用的数据库:

SELECT db

SELECT 命令在切换成功之后将返回 OK。

举个例子,当我们以默认方式启动 redis-cli 客户端时,redis-cli 将连接至服务器的 0 号数据库:

$ redis-cli
redis>

这时,如果我们想要从 0 号数据库切换至 3 号数据库,那么只需要执行以下命令即可:

redis> SELECT 3
OK
redis[3]>

客户端提示符末尾的[3]表示客户端现在正在使用3号数据库。注意,redis-cli在使用默认的0号数据库时不会打印出数据库号码。

在此之后,我们就可以通过执行命令,对3号数据库进行设置了:

redis[3]> SET msg "hello world" -- 在3号数据库创建一个msg键
OK
redis[3]> SET counter 10086 -- 在3号数据库创建一个counter键
O

其他信息

  • 复杂度:O(1)。

  • 版本要求:SELECT 命令从 Redis 1.0.0 版本开始可用。