Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory Redis:如何(或应该)删除子频道_Memory_Redis_Publish Subscribe - Fatal编程技术网

Memory Redis:如何(或应该)删除子频道

Memory Redis:如何(或应该)删除子频道,memory,redis,publish-subscribe,Memory,Redis,Publish Subscribe,在我的应用程序中,我动态创建了新的pubsub频道,每天可能会有太多类似5k的频道。根据我的应用程序的要求,任何频道最多使用5分钟 考虑到这种情况,一周内应用程序中将出现数千个未使用的频道。那么,我如何删除未使用的频道,甚至应该删除它们呢。它们是否存储在内存中?通过它们发布的消息会发生什么变化,它们会留在redis的内存中吗 谢谢频道是环境频道。它们仅在存在订阅时存在。所以:要么呼叫[P]取消订阅订阅的连接,要么关闭订阅的连接。在“5分钟”后,你的应用程序发送取消订阅命令?我的客户端是通过soc

在我的应用程序中,我动态创建了新的
pubsub
频道,每天可能会有太多类似5k的频道。根据我的应用程序的要求,任何频道最多使用5分钟

考虑到这种情况,一周内应用程序中将出现数千个未使用的频道。那么,我如何删除未使用的频道,甚至应该删除它们呢。它们是否存储在内存中?通过它们发布的消息会发生什么变化,它们会留在redis的内存中吗


谢谢

频道是环境频道。它们仅在存在订阅时存在。所以:要么呼叫[P]取消订阅订阅的连接,要么关闭订阅的连接。

在“5分钟”后,你的应用程序发送
取消订阅
命令?我的客户端是通过socket.io的web客户端,因此最终用户可能会突然关闭浏览器选项卡,而我可能不知道他是否仍在连接。也许我可以通过捕获socket.io超时或其他什么来处理这个问题,但最重要的是,是否可以保证
取消订阅
所有订户都会导致删除频道?不确定,请尝试。我记得如果一个频道的订户为零,则会被删除。对于消息问题,在发送消息并接收到消息后,消息不再存在。@byterussian(假设我已经尝试过),我如何确认它已被删除?在redis cli内部:
INFO stats
检查pubsub_ChannelsHanks以获取答案,您是否可以指定任何来源来指示该问题?我在文档中找不到这样的详细信息。@你可以测量前后的“信息统计”(描述订阅计数)-足够接近吗?或者你可以读一下来源?但基本上,我知道“通过与作者交谈”——恐怕是技术方面的