Redis不使用字符串作为数据库名称而是索引的原因是,Redis数据库的目标和能力并非提供一个外部级别的字典:Redis字典不能扩展到许多字典,只能是一小部分(这是一个权衡),我们也不想在设计中提供嵌套数据结构,所以这只是“少量命名空间”,因此使用数值小的索引似乎是最佳选择。
命名数据库并不符合Redis的设计目标。首先,在一个旨在实现最大性能的系统中,对每个调用添加字符串查找并不是一个好主意,因为大多数用户都将所有内容放在DB 0中。另一个设计目标是保持核心简单 - 如果一个请求的新命令可以通过在客户端组合现有命令而没有巨大的性能惩罚来实现,它就不会被添加到核心系统中。如果你真的需要命名数据库,那么更新你的客户端代码以读取一个字符串并向Redis发送一个数字非常容易。