我为我的IOT应用选择了Redis
作为内存数据库。应用程序还需要订阅从传感器设备接收的队列消息。这些消息需要存储在内存数据库中以进行流分析。将Redis
的同一个实例用作in-memory database
还是message broker
是否正确?
答案 0 :(得分:2)
您希望做的是什么,但需要两个单独的连接到同一个实例上的不同数据库。
Redis允许每个Redis实例最多16个单独的数据库(基本上是服务器)。每个人都会在0
和15
之间分配一个号码。默认情况下,启动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 instance
和in-memory database
使用相同的message broker
。