2017-07-31 31 views
2

我的用例是一些在某些時候與redis交互的孤立調用。redis - 獲取與PHP客戶端的連接時間

問題是我看到一個超長的等待時間來獲取連接,在我的LAN環境中嘗試了prediscredis。超過1-3個客戶端線程,我的PHP腳本連接到redis並選擇數據庫所需的時間範圍從18ms700ms

通常,我會使用連接池或緩存連接並在所有線程中使用它,但我認爲這不能通過PHP在不同的腳本中完成。

我能做些什麼來加快速度?

+0

也許這是由網絡問題引起的,ping redis服務器ip來測試它。 – GuangshengZuo

+0

沒有網絡問題。你有沒有類似的用例,你沒有看到我的任何問題? – Buffalo

回答

0

顯然,Predis需要persistent標誌集:https://github.com/nrk/predis/wiki/Connection-Parameters)以及FPM,這在Windows和Linux上都很令人沮喪,更不用說在切換到FPM之前進行測試。

我已經切換到Phpredis(https://github.com/phpredis/phpredis),這是一個PHP模塊/擴展,現在都很好。連接時間使用$redis->pconnect()大幅下降,並且在多個腳本/線程間保持一致。注意:它在處理錯誤方面與Predis有些不同(它在實例化對象時失敗,而不是在運行第一個調用時,它返回false而不是null,因爲不存在的值)如果從Predis切換出來。