您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Linux下如何安裝配置Twemproxy的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Twemproxy是一種代理分片機制,由Twitter開源。Twemproxy作為代理,可接受來自多個程序的訪問,按照路由規(guī)則,轉(zhuǎn)發(fā)給后臺的各個Redis服務(wù)器,再原路返回。該方案很好的解決了單個Redis實例承載能力的問題。
首先需要安裝autoconf、automake、libtool工具,比如ubuntu可以使用如下命令安裝
yum install autoconf automake yum install libtool
cd /usr/servers wget https://github.com/twitter/twemproxy/archive/v0.4.0.tar.gz tar -xvf v0.4.0.tar.gz cd twemproxy-0.4.0/ autoreconf -fvi ./configure && make
此處根據(jù)要注意,如上安裝方式在有些服務(wù)器上可能在大量如mset時可能導(dǎo)致Twemproxy崩潰,需要使用如 CFLAGS=”-O1″ ./configure && make或CFLAGS=”-O3 -fno-strict-aliasing” ./configure && make安裝。
配置
vim /usr/servers/twemproxy-0.4.0/conf/nutcracker.yml server1: listen: 127.0.0.1:1111 hash: fnv1a_64 distribution: ketama redis: true servers: - 127.0.0.1:6379:1
啟動Twemproxy代理
/usr/servers/twemproxy-0.4.0/src/nutcracker -d -c /usr/servers/twemproxy-0.4.0/conf/nutcracker.yml
-d指定后臺啟動 -c指定配置文件;此處我們指定了代理端口為1111
查看是否啟動成功
ps -aux | grep nutcracker
進入Redis客戶端
/usr/servers/redis-2.8.19/src/redis-cli -p 1111
執(zhí)行如下命令
127.0.0.1:1111> set i 1 OK 127.0.0.1:1111> get i "1"
基本配置
其使用YML語法,如:
server1: listen: 127.0.0.1:1111 hash: fnv1a_64 distribution: ketama timeout:1000 redis: true servers: - 127.0.0.1:6660:1 - 127.0.0.1:6661:1 server1:是給當前分片配置起的名字,一個配置文件可以有多個分片配置; listen : 監(jiān)聽的ip和端口;hash:散列算法; distribution:分片算法,比如一致性Hash/取模; timeout:連接后端Redis或接收響應(yīng)的超時時間; redis:是否是redis代理,如果是false則是memcached代理; servers:代理的服務(wù)器列表,該列表會使用distribution配置的分片算法進行分片;
#hash算法: one_at_a_time md5 crc16 crc32 (crc32 implementation compatible with libmemcached) crc32a (correct crc32 implementation as per the spec) fnv1_64 fnv1a_64 fnv1_32 fnv1a_32 hsieh murmur jenkins #分片算法: ketama(一致性Hash算法) modula(取模) random(隨機算法)
servers: - ip:port:weight alias如 servers: - 127.0.0.1:6660:1 - 127.0.0.1:6661:1或者 servers: - 127.0.0.1:6660:1 server1 - 127.0.0.1:6661:1 server2
比如一個商品有:商品基本信息(p?)、商品介紹(d?)、顏色尺碼(c?)等,假設(shè)我們存儲時不采用HashTag將會導(dǎo)致這些數(shù)據(jù)不會存儲到一個分片,而是分散到多個分片,這樣獲取時將需要從多個分片獲取數(shù)據(jù)進行合并,無法進行mget;那么如果有了HashTag,那么可以使用“::”中間的數(shù)據(jù)做分片邏輯,這樣id一樣的將會分到一個分片。
nutcracker.yml配置如下:
server1: listen: 127.0.0.1:1111 hash: fnv1a_64 distribution: ketama redis: true hash_tag: "::" servers: - 127.0.0.1:6660:1 server1 - 127.0.0.1:6661:1 server2
/usr/servers/redis-2.8.19/src/redis-cli -p 1111
在我的服務(wù)器上可以連接6660端口
/usr/servers/redis-2.8.19/src/redis-cli -p 6660 127.0.0.1:6660> get p:12: "1" 127.0.0.1:6660> get d:12: "1" 127.0.0.1:6660> get c:12: "1"
感謝各位的閱讀!關(guān)于“Linux下如何安裝配置Twemproxy”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。