標籤:
TwemProxy是一個Redis的中介軟體代理,具有很多有用的功能,可以暫時替代一部分Redis Cluster的功能:
2 支援失敗節點自動刪除
2 可以設定重新串連該節點的時間
2 可以設定串連多少次之後刪除該節點
2 該方式適合作為cache儲存
2 支援設定HashTag
2 通過HashTag可以自己設定將兩個KEY hash到同一個執行個體上去。
2 減少與redis的直接連接數
2 保持與redis的長串連
2 可設定代理與後台每個redis串連的數目
2 自動分區到後端多個redis執行個體上
2 多種hash演算法
2 可以設定後端執行個體的權重
2 避免單點問題
2 可以平行部署多個代理層,client自動選擇可用的一個
2 支援狀態監控
2 可設定狀態監控ip和連接埠,訪問ip和連接埠可以得到一個json格式的狀態資訊串
2 可設定監控資訊重新整理間隔時間
2 高輸送量
2 串連複用,記憶體複用。
2 將多個請求組成redis pipelining統一向redis請求
安裝問題解決TwemProxy的tarball分發包在Google Code上,無法下載了…只能從GitHub上下載源碼包進行手動編譯了。安裝、升級了autoconf(2.64以上,:http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz)、automake、libtool後,卻一直無法編譯安裝成功。不是報“Error : possibly undefined macro: AM_INIT_AUTOMAKE”,就是報“Cannot find install-sh, install.sh, or shtool”。最後終於找到解決辦法1和解決辦法2。
最後,我確定在我環境中能成功編譯安裝的方法是:
>tar -xzvf twemproxy-0.4.0.tar.gz
>aclocal (解決錯誤1)
>autoconf -f -v –i
>autoreconf -f -i -Wall,no-obsolete (解決錯誤2)
>./configure --enable-debug=full
(可以開啟O3最佳化:CFLAGS="-O3 -fno-strict-aliasing" ./configure)
>make
>src/nutcracker –h (查看各種選項)
配置和運行
conf/nutcracker.yml是預設使用的設定檔,開啟後能看到配置了alpha, beta, gamma, delta, omega五個串連池作為例子。我們只保留alpha,並配置兩個redis伺服器,連接埠為6379和6479。之後相應地,配置好兩個Redis執行個體並啟動。現在就可以啟動twemproxy了,直接src/nutcracker就可以運行。
測試一下是否連通了。用redis-cli -p 22121串連到twemproxy的監聽連接埠,執行一些set命令,然後串連到兩個Redis執行個體中就能看到有一些key-value儲存進去了。
高效能的Redis代理TwemProxy