簡體   English   中英

如何殺死Node在Redis上打開的空閑客戶端?

[英]How to kill idle clients opened by Node on Redis?

我很難自動關閉Redis的客戶端連接。 redis包無疑是一個問題:

https://www.npmjs.com/package/redis

Redis將使連接保持活動狀態,直到您關閉它們或達到默認為無限的超時為止。

我知道這一點:

如何殺死空閑的Redis客戶端

甚至在繼續閱讀SO之前,我都嘗試通過.conf文件和命令行來設置timeout配置,但是它們都不起作用。

實際發生的事情很奇怪:

如果我在N秒后運行CLIENT LIST

  • 相同數量的空閑連接仍然存在
  • 客戶端的“ idle”信息從0重新開始(例如,如果我將超時設置為10秒,則11秒鍾后, idle信息為1)。
  • 地址改變。 端口號在創建新連接時不會更改,不會丟失該客戶端。
  • 客戶端實際上已連接到Node。 這似乎是一個新的節點進程。 如果我將節點應用程序保持打開狀態,則連接不會消失。 如果我關閉該應用程序,則它創建的所有連接都將關閉。 因此, redis模塊可能正在“重新啟動”連接。

關於我不應該強迫被殺客戶的“主張”的任何想法?

Obs:我知道我可以使用“ quit()”關閉客戶端的連接,但是我必須確保它會擺脫一段時間后應用程序未關閉的任何空閑客戶端。

為了防止節點redis重新連接,我將密鑰retry_strategy傳遞給createClient。

它必須是返回false或拋出Error的函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM