2011-07-08 42 views
1

我有一個使用Andy McCurdy的python庫的python加載程序,它可以打開多個Redis DB連接,並設置數百萬個鍵循環遍歷每行包含整數的行的文件該記錄的redis-db數字。總而言之,目前只有20個數據庫是開放的,但最終可能有多達100個或更多。使用Andy McCurdy的python-for-redis庫配置連接池大小

我注意到,Redis的日誌(設置爲詳細)總是告訴我有「4個客戶機連接(0奴隸),...雖然我知道,我的20是開放的,正在使用。

所以我猜這是關於python庫中內置的連接池支持,我猜對了嗎?如果真的有問題,有沒有辦法增加池大小 - 我有很多機器資源,很多致力於Redis?增加池大小有助於提高性能,因爲我製作的虛擬連接數量增加了嗎?

在這一點上,我實際上一次只擊打一個連接,雖然我有很多打開,因爲我洗牌輸入記錄其中的ds。但是最終會有很多腳本(打2打?)並行觸發Redis,主要是閱讀,我想知道增加池大小會產生什麼效果。

感謝 馬修

回答

1

所以我猜這是關於內置於Python庫連接池的支持。我猜對了嗎?

是的。

如果是這樣,真正的問題是有沒有增加池大小不是需要

,它會增加連接最多2 ** 31%默認(andys LIB)的方式。所以你的連接無論如何都是空閒的。

如果您想提高性能,您將需要使用redis更改應用程序。

我想知道增加池大小會產生什麼效果。

沒有,至少在這種情況下沒有。

如果redis在某些時候成爲瓶頸,並且您擁有多核服務器。您必須運行多個redis實例才能提高性能,因爲它只能在單個核心上運行。當您運行多個實例並進行大多數讀取時,從屬功能可以提高性能,因爲從屬設備可用於所有讀取。