为什么Redis使用整数数据库而不是字符串?保持一个将字符串映射到“实际”整数的小内部数据结构似乎是微不足道的。
答案 0 :(得分:43)
Redis不使用字符串作为数据库名称但索引的原因是Redis数据库的目标和能力不是提供字典的外层:Redis字典无法扩展到许多字典,而只是一小部分数字(这是一个权衡),我们也不想为每个设计提供嵌套的数据结构,因此这只是“一些名称空间”,因此使用数字小索引似乎是最好的选择。
答案 1 :(得分:5)
命名数据库并不符合redis的设计目标。首先,在为最大性能设计的系统中,当大多数用户将所有内容都放入DB 0时,为每个调用添加字符串查找并不是一个好主意。
另一个设计目标是保持核心简单 - 如果可以通过在客户端上组合现有命令来实现请求的新命令而不会产生巨大的性能损失,则不会将其添加到核心系统。如果您确实需要命名数据库,那么更新您的客户端代码读取字符串并将数字发送到redis是微不足道的。