为什么 Redis 默认 16 个库?90% 以上程序员不知道!

为什么Redis默认16个库?
导读
在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好Redis服务器后很多朋友应该会发现和有这样的疑问,为什么Redis默认建立了16个数据库,如下图所示。
一、16个数据库的由来
Redis实例默认建立了16个db,由于不支持自主进行数据库命名所以以dbX
的方式命名。默认数据库数量可以修改配置文件的database
值来设定。
二、正确理解Redis的“数据库”概念
多个应用程序不应使用同一个Redis的不同库,而应一个应用程序对应一个Redis实例,不同的数据库可用于存储不同环境的数据。
三、集群情况下的多db支持
要注意以上所说的都是基于单体Redis的情况。而在集群的情况下不支持使用select
命令来切换db,因为Redis集群模式下只有一个db0
。
特性 | 描述 |
---|---|
key批量操作 | 例如mget 、mset 必须在一个slot |
Key事务和Lua支持 | 操作的key必须在一个节点 |
key是数据分区的最小粒度 | 不支持bigkey分区 |
不支持多个数据库 | 集群模式下只有一个db0 |
复制只支持一层 | 不支持树形复制结构 |
四、总结
Redis实例默认建立了16个db,由于不支持自主进行数据库命名所以以dbX
的方式命名。默认数据库数量可以修改配置文件的database
值来设定。对于db正确的理解应为“命名空间”,多个应用程序不应使用同一个Redis不同库,而应一个应用程序对应一个Redis实例,不同的数据库可用于存储不同环境的数据。最后要注意,Redis集群下只有db0
,不支持多db。