翻译自:http://rediscookbook.org/multiple_databases.html
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),所以只能自己铭记哪个数子代表那块数据。