2016-08-28 63 views
1

我想使用redis来存储一些我自己的键值对,但是我的一些模块已经使用它。会话数据的redis快速会话存储以及套接字io的redis适配器。所以我的问题很简单,我如何创建或指定一个数据库/名称空间来存储我自己的密钥而不会发生密钥冲突?我正在使用node-redis驱动程序。如何在redis上命名空间键以避免名称冲突?

回答

4

解决方案1:在不同的Redis实例

最严格隔离的不同模块的存储数据被存储在一个单独的的Redis实例的每个模块,即一个单独的Redis过程的数据。

解决方法2:在一个单一的Redis实例

一个Redis的实例可以有多个数据库,并且可以在配置文件中配置的数据库数量的不同数据库不同模块的存储数据。默认情况下,有16个数据库。

这些数据库使用基于零的数字索引进行命名。使用select command,您可以使用数据库。选择之后,任何后续命令都将在数据库上运行。

所以,如果你为每个模块分配一个独立的数据库,你可以避免名称冲突。

解决方案3:用键前缀创建命名空间

如果所有的数据都存储在一个数据库中,你仍然可以隐式地创建一个命名空间关键前缀。对于每个模块,该模块的所有数据应具有相同的密钥模式:ModuleName:KeyName,即该模块的每个密钥具有相同的前缀:ModuleName

由于每个模块具有不同的名称,因此这些模块之间不会有任何名称冲突。