gpt4 book ai didi

redis - 为什么redis pubsub工作独立于数据库?

转载 作者:行者123 更新时间:2023-12-02 14:54:13 25 4
gpt4 key购买 nike

我是 Redis 新手,正在尝试了解 Redis PubSub 的概念。

Step- 1:
root@01a623a828db:/data# redis-cli -n 1
127.0.0.1:6379[1]> subscribe foo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1

第一步,订阅数据库1

Step- 2:
root@01a623a828db:/data# redis-cli -n 4
127.0.0.1:6379[4]> publish foo 2
(integer) 1

第二步,在数据库4上发布消息

Step- 3:
root@01a623a828db:/data# redis-cli -n 1
127.0.0.1:6379[1]> subscribe foo
Reading messages... (press Ctrl-C to quit)
..........................................

1) "message"
2) "foo"
3) "2"

在第3步中,数据库1上收到了第2步中在数据库4上发布的消息。

我试图找出其背后的原因,但我到处都找到了相同的答案 - “Pub/Sub 与 key 空间没有关系。它的目的是在任何级别上都不会干扰它,包括数据库编号。在 db 10 上发布,db 1 上的订阅者将听到。如果您需要某种范围界定,请在 channel 前加上环境名称(测试、登台、生产)前缀 - 这是根据 Redis PubSub 的官方文档。 “

问题-

  1. 为什么redis pubsub工作架构是独立于数据库的?

  2. 如何实现“如果您需要某种范围界定,请在 channel 中添加环境名称(测试、登台、生产)前缀”?

  3. “在 db 10 上发布,将被 db 1 上的订阅者听到。”- 它不内联于语句它不会在任何级别上干扰它,包括数据库编号。

最佳答案

  1. 这实际上是设计选择的问题。

  2. 如果您需要范围,您可以随时为模式添加前缀。例如:测试环境上的模式 productupdate 将通过 test:productupdate 进行监视,而在 staging env 上,它将是 staging:productupdate

  3. 这似乎与声明很好地一致。数据库编号在这里并不重要。

关于redis - 为什么redis pubsub工作独立于数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58962710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com