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 命令,用户可以从当前正在使用的数据库切换到自己想要使用的数据库:

  1. SELECT db

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

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

  1. $ redis-cli
  2. redis>

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

  1. redis> SELECT 3
  2. OK
  3.  
  4. redis[3]>

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

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

  1. redis[3]> SET msg "hello world" -- 3 号数据库创建一个 msg
  2. OK
  3.  
  4. redis[3]> SET counter 10086 -- 3 号数据库创建一个 counter
  5. OK

其他信息

属性
复杂度O(1)
版本要求SELECT 命令从 Redis 1.0.0 版本开始可用。