redis 为什么 databases

我想请问下,redis 为什么 databases
最新回答
西雅图很忙°

2024-09-05 18:50:07

I. 问题背景

你或许希望一个Redis应用(一个Redis server,或者一个Redis server/slaves群组)能为多个客户端应用服务,如果这些客户端应用都各自为营,向Redis写数据的话,很可能会导致key冲突(我们知道Redis是一个key-value结构的存储结构)。为了将不同的应用分开,你可以用不同的前缀去区分(eg: app_i:xx:yy, app_ii:xx:yy)。Redis已经有更好的分割这些key的机制:Database。

II. 定义

Redis Databases是一个下标基于0的数组,我们可以用指令:

SELECT 2

将当前Database切换到“2”这个空间,此后所有的操作都是在这个空间(对应客户端的应用)内的,直到再次执行 SELECT n。

III. 实施方案

Database切换操作:SELECT n

清除当前Database下的所有key(所有数据):FLUSHDB,之后用 keys * 查看是否还有残key存在?没有了!

IV. 其他

Databases的数量可以在redis.conf中配置:

databases 42,从“客户端应用都各自为营”的角度来看,Database的概念是很适用的,它让我们有清晰的数据划分,可以放心的把注意力放在key的设计上。

Redis暂不提供将
字符串
索引Databases的方式(只能用Number),所以只能自己铭记哪个数子代表那块数据。