如何使用相同的Redis实例作为消息代理和内存数据库?

时间:2016-08-27 17:19:12

标签: node.js redis message-queue

我为我的IOT应用选择了Redis作为内存数据库。应用程序还需要订阅从传感器设备接收的队列消息。这些消息需要存储在内存数据库中以进行流分析。将Redis的同一个实例用作in-memory database还是message broker是否正确?

2 个答案:

答案 0 :(得分:2)

您希望做的是什么,但需要两个单独的连接到同一个实例上的不同数据库。

Redis允许每个Redis实例最多16个单独的数据库(基本上是服务器)。每个人都会在015之间分配一个号码。默认情况下,启动Redis时,会选择数据库0。您可以使用SELECT命令在它们之间切换:

SELECT 1

您可以使用-n参数指定使用redis-cli打开的数据库。

redis-cli -h localhost -p 6390 -n 1

您可以通过附加/1(或您希望定位的任何数据库编号)来指定连接字符串中的哪个数据库。

redis.connect('localhost/1');

如果您的服务器是远程服务器,只需将localhost/0替换为您的远程主机URL,并在末尾添加/1(或您希望定位的任何数据库编号)。

答案 1 :(得分:0)

根据Redis SUBSCRIBE命令

  

一旦客户端进入订阅状态,就不应该这样做   发出任何其他命令,除了额外的SUBSCRIBE,PSUBSCRIBE,   UNSUBSCRIBE和PUNSUBSCRIBE命令。

因此,您不能同时对connection instancein-memory database使用相同的message broker