1、前端使用 Twemproxy 做代理,後端的 Redis 資料能基本上根據 key 來進行比較均衡的分布。後端一台 Redis 挂掉後,Twemproxy 能夠自動摘除。恢複後,Twemproxy 能夠自動識别、恢複并重新加入到 Redis 組中重新使用。
2、Redis 挂掉後,後端資料是否丢失依據 Redis 本身的政策配置,與 Twemproxy 基本無關。如果要新增加一台 Redis,Twemproxy 需要重新開機才能生效;并且資料不會自動重新 Reblance,需要人工單獨寫腳本來實作。
3、如同時部署多個 Twemproxy,配置檔案一緻(測試配置為distribution:ketama,modula),則可以從任意一個讀取,都可以正确讀取 key對應的值。
4、多台 Twemproxy 配置一樣,用戶端分别連接配接多台 Twemproxy可以在一定條件下提高性能。根據 Server 數量,提高比例在 110-150%之間。
5、如原來已經有 2 個節點 Redis,後續有增加 2 個 Redis,則資料分布計算與原來的 Redis 分布無關,現有資料如果需要分布均勻的話,需要人工單獨處理。
6、如果 Twemproxy 的後端節點數量發生變化,Twemproxy 相同算法的前提下,原來的資料必須重新處理分布,否則會存在找不到key值的情況。
測試方式:
1.後端 Redis 節點數量不變,不同 Twemproxy server 測試及多個同時運作測試結果如下:
從上面資料可以看出,單台最多也隻能達到單個 Redis 的性能;2個節點運作性能增加大概110%左右。4個 server 運作,性能大概增加了123%,6個 server 接入運作160%。
2.前端使用1個 Twemproxy server,後端 Redis 數量分别為2,3,4,5,6來進行壓力測試,看測試結果,測試資料如下:
從資料可以看出,後端節點數量與 Twemproxy 的性能基本無關,最大性能也就是單個 Redis 的性能。