有没有办法完全分离两个 redis 数据库以供 pub/sub 使用?

Is there a way to fully separate two redis databases for pub/sub usage?

场景:一个应用的两个实例共享同一个redis实例,但是使用不同的数据库。该应用程序利用 redis pub/sub 函数在服务之间交换数据。

问题:当应用程序实例 A 发布消息时(在 redis 数据库 1 上),应用程序实例 B(运行 在 redis 数据库 2 上)收到消息。

预期:由于应用程序的两个实例使用不同的数据库,我希望不仅 Redis 中的键是分开保存的,而且 pub/sub 订阅者也是如此。

问题:我可以告诉 redis 为每个数据库保持 pub/sub 独立吗?

否 - PubSub 在连接到服务器的所有客户端之间共享,无论它们当前 SELECTed 数据库如何(共享 database/numbered database/keyspace)。虽然您可以使用不同的通道等,但只有使用两个 Redis 实例才能实现真正的分离。

注意:不推荐使用 shared/numbered 数据库 - 始终根据 app/service/use 个案例使用专用的 Redis 实例