场景:应用程序的两个实例共享相同的redis实例,但使用不同的数据库。该应用程序利用redis pub / sub函数在服务之间交换数据。
问题:当应用程序实例A发布某些内容(在redis数据库1上)时,应用程序实例B(在redis数据库2上运行)会收到该消息。
期望:由于应用程序的两个实例都使用不同的数据库,我不仅会期望redis中的密钥是单独保存的,还是pub / sub订阅者。
问题:我可以告诉redis为每个数据库保持pub / sub分开吗?
答案 0 :(得分:4)
否 - PubSub在连接到服务器的所有客户端之间共享,无论其当前SELECT
ed数据库(共享数据库/编号数据库/密钥空间)如何。虽然您可以使用不同的通道等,但只有使用两个Redis实例才能实现真正的分离。
注意:建议不要使用共享/编号数据库 - 每个应用程序/服务/用例总是使用专用的Redis实例