2014-09-21 29 views
2

我設置的Redis和運行Redis的基準測試,結果是:爲什麼python使用redis太慢了?我的雲服務器上

SET:每秒 GET 90909.09請求:每秒

91743.12請求,但是當使用python我做套/進入循環:

import datetime 
import redis 
r = redis.Redis(host='127.0.0.1', port=6379, db=1) 
mapData = {} 
begin = datetime.datetime.now() 
for i in range(8000): 
     mapData[i] = r.get([str(i)]) 
end = datetime.datetime.now() 
print end-begin 

結果只是每秒8000個請求。 我該如何改進它?

回答

5

開始通過閱讀http://redis.io/topics/benchmarks

概括地說,你的Python程序產生一個連接上有太多往返於Redis的,因此您支付的每次迭代的網絡延遲。我的建議:

  • 使用pipelining - 在Python here
  • 使用MGET例子,在一個命令
  • 做多,8000次迭代檢索幾個鍵,這是過低評估性能

請注意,您不會達到Python中redis-benchmark的性能,但您應該能夠通過流水線或mget實現每秒超過50K的獲取操作。

相關問題