新聞中心
Twemproxy是一種代理分片機(jī)制,由Twitter開(kāi)源。Twemproxy作為代理,可接受來(lái)自多個(gè)程序的訪問(wèn),按照路由規(guī)則,轉(zhuǎn)發(fā)給后臺(tái)的各個(gè)Redis服務(wù)器,再原路返回。該方案很好的解決了單個(gè)Redis實(shí)例承載能力的問(wèn)題,下面為大家分享一下Linux下安裝配置Twemproxy具體方法。

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比安化網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式安化網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋安化地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
首先需要安裝autoconf、automake、libtool工具,比如ubuntu可以使用如下命令安裝
yum install autoconf automake
yum install libtool
下載Twemproxy并安裝
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時(shí)可能導(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
啟動(dòng)Twemproxy代理
/usr/servers/twemproxy-0.4.0/src/nutcracker -d -c /usr/servers/twemproxy-0.4.0/conf/nutcracker.yml
-d指定后臺(tái)啟動(dòng) -c指定配置文件;此處我們指定了代理端口為1111
查看是否啟動(dòng)成功
ps -aux | grep nutcracker
進(jìn)入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"
設(shè)置
基本配置
其使用YML語(yǔ)法,如:
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:是給當(dāng)前分片配置起的名字,一個(gè)配置文件可以有多個(gè)分片配置;
listen : 監(jiān)聽(tīng)的ip和端口;
hash:散列算法;
distribution:分片算法,比如一致性Hash/取模;
timeout:連接后端Redis或接收響應(yīng)的超時(shí)時(shí)間;
redis:是否是redis代理,如果是false則是memcached代理;
servers:代理的服務(wù)器列表,該列表會(huì)使用distribution配置的分片算法進(jìn)行分片;
分片算法
#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(隨機(jī)算法)
服務(wù)器列表
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
HashTag
比如一個(gè)商品有:商品基本信息(p)、商品介紹(d)、顏色尺碼(c)等,假設(shè)我們存儲(chǔ)時(shí)不采用HashTag將會(huì)導(dǎo)致這些數(shù)據(jù)不會(huì)存儲(chǔ)到一個(gè)分片,而是分散到多個(gè)分片,這樣獲取時(shí)將需要從多個(gè)分片獲取數(shù)據(jù)進(jìn)行合并,無(wú)法進(jìn)行mget;那么如果有了HashTag,那么可以使用“::”中間的數(shù)據(jù)做分片邏輯,這樣id一樣的將會(huì)分到一個(gè)分片。
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
連接Twemproxy
/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"
網(wǎng)站標(biāo)題:Linux下安裝配置Twemproxy具體方法
分享路徑:http://m.fisionsoft.com.cn/article/dhjipeo.html


咨詢
建站咨詢
