那是一个普通得不能再普通的下午。我端着一杯已经凉了的美式,坐在视频面试前,心想:
“Redis 我天天用,缓存、分布式锁、限流、秒杀,闭着眼都能聊。”
面试官一开口也很友好:
“Redis 用得多吧?”
我自信点头。
“那我问个简单点的,Redis 为什么设计了16 个数据库?”
我愣住了。不是因为不会用 Redis,而是因为我从来没认真想过这个问题。
我脑子里飞快地闪过无数场景:
- select 0
- select 1
- 配置文件里的 databases 16
- 面试题里偶尔出现的“多库隔离”
但“为什么是 16”,不是 8,也不是 32,更不是 1?
那一刻,我感觉自己像一个每天开车上下班,却突然被问:
“方向盘为什么是圆的?”
先别急,咱把 Redis 的「16 库」当成一栋公寓
在解释技术之前,我想先讲个更生活化的故事。假设你是房东,买了一栋16 层的小公寓。
- 每一层都有独立的房门
- 每一层都能住人
- 但这不是 16 栋楼,而是一栋楼的 16 层
这栋楼有几个特点:
- 水电是共用的
- 电梯是同一部
- 承重结构是一样的
Redis 的 16 个库,本质上