【发布时间】:2013-05-16 10:35:22
【问题描述】:
在我的应用程序中,我动态创建了新的pubsub 频道,每天可能有太多的频道,比如 5k。根据我的应用程序的要求,任何频道最多使用 5 分钟。
考虑到这种情况,一周内应用中将出现数千个未使用的频道。那么如何删除未使用的频道,或者我什至应该删除它们。它们是否存储在内存中?通过它们发布的消息会发生什么情况,它们是否保留在 redis 的内存中?
谢谢
【问题讨论】:
-
在“5 分钟”之后,您的应用发送
UNSUBSCRIBE命令? -
我的客户端是 socket.io 上的 Web 客户端,因此最终用户可能会突然关闭浏览器选项卡,我可能不知道他是否仍然连接。也许我可以通过捕获 socket.io 超时或其他东西来处理这个问题,但主要是它保证
UNSUBSCRIBEing 所有订阅者都会导致删除频道? -
不确定,试试吧。我记得如果一个频道的订阅者为零,则会被删除。对于消息问题,在发送消息并接收之后不再存在。
-
@byterussian 假设我已经尝试过,我如何确认它已被删除?
-
redis-cli 内部:
INFO stats检查 pubsub_channels
标签: memory redis publish-subscribe