基於twemproxy的redis分布式應用

2021-08-27 19:01:53 字數 2916 閱讀 2539

根據以往的測試結論,單個redis的例項的記憶體總量最好控制在8g以內(最大不能超過20g),而實際上應用對redis的記憶體的需求可能會遠遠大於8g,因此需要乙個保持redis server效能不下降,但可以有效擴充redis server的容量的方案。

twemproxy是乙個恰當的選擇。

[b]簡介[/b]

twemproxy,也叫nutcraker。是乙個twtter開源的乙個redis和memcache**伺服器。

[b]特點[/b]

• 支援失敗節點自動刪除

• 支援設定hashtag

• 減少與redis的直接連線數

• 自動分片到後端多個redis例項上

• 避免單點問題

• 可以平行部署多個**層.client自動選擇可用的乙個

• 支援redis pipelining request

• 支援狀態監控

• 高吞吐量

[b]部署[/b]

參考**:[url]

核心指令碼:

git clone git:

autoreconf -fvi

./configure --prefix=/usr/local --enable-debug=log

make && make install

幫助文件:

usage: nutcracker [-?hvddt] [-v verbosity level] [-o output file]

[-c conf file] [-s stats port] [-a stats addr]

[-i stats interval] [-p pid file] [-m mbuf size]

options:

-h, --help : this help

-v, --version : show version and exit

-t, --test-conf : test configuration for syntax errors and exit

-d, --daemonize : run as a daemon

-d, --describe-stats : print stats description and exit

-v, --verbosity=n : set logging level (default: 5, min: 0, max: 11)

-o, --output=s : set logging file (default: stderr)

-c, --conf-file=s : set configuration file (default: conf/nutcracker.yml)

-s, --stats-port=n : set stats monitoring port (default: 22222)

-a, --stats-addr=s : set stats monitoring ip (default: 0.0.0.0)

-i, --stats-interval=n : set stats aggregation interval in msec (default: 30000 msec)

-p, --pid-file=s : set pid file (default: off)

-m, --mbuf-size=n : set size of mbuf chunk in bytes (default: 16384 bytes)

啟動指令碼:

./bin/nutcracker -c /usr/local/twemproxy/conf/nutcracker_test.yml -s 22222 -d -o /usr/local/twemproxy/logs/nutcracker.log

[b]依賴包[/b]

執行過程中可能遇到依賴包不存在或者版本過低的情況,主要有m4, autoconf, automake, libtool。手動安裝過程如下:

安裝m4

wget

tar -xzvf m4-1.4.17.tar.gz

cd m4-1.4.17

./configure --prefix=/usr/local

make && make install

安裝autoconf

wget

tar -xzvf autoconf-2.69.tar.gz

cd autoconf-2.69

./configure --prefix=/usr/local

make && make install

安裝automake

wget

tar xzvf automake-1.14.tar.gz

cd automake-1.14

./configure --prefix=/usr/local

make && make install

安裝libtool

wget

tar xzvf libtool-2.4.tar.gz

cd libtool-2.4

./configure --prefix=/usr/local

make && make install

Red5的集群方式

本來一直想總結下關於red5伺服器的知識。各種原因耽擱了,最近比較清閒,所以會陸續總結一些相關知識。今天呢,先說說red5的集群吧,自帶的集群 邊源方式。red5本身自帶集群的,在0.9.1版本的時候,可以配置邊源伺服器,配置的步驟也不算繁瑣。但是有乙個缺點是預設的伺服器,支援單邊多源,但是多個源之...

red5聊天功能 私聊的實現

這裡我是在伺服器端進行 遍歷當前所有連線,找到目標物件,然後呼叫客戶端函式。不知道還有沒有更好的方法,如果人數多,伺服器要承受較的的壓力 得到每個連線的使用者名稱,這個使用者名稱是在初始連線時存放的 string u conn.getclient getattribute username tost...

redis持久化到mysql的方案 redisDB

軟體簡介 基於redis和mysql的資料持久化方案 redis執行時連線資料庫 cache失效時同步讀mysql,資料修改時候通過訊息佇列通知db執行緒寫mysql reids.conf增加幾個配置選項 mysql host mysql port mysql user mysql pwd mysq...