redis之使用twemproxy實現資料分片
1、安裝好redis的測試例項:
本文測試埠是30002和30001
[root@localhost ~]# ps -ef | grep [r]edis-server
root 5135 1 0 19:57 ? 00:00:00 redis-server *:30001
root 19272 1 0 May29 ? 00:00:47 redis-server *:30002
2、安裝autoconf(twemproxy編譯安裝需要)
下載連結:http://ftp.gnu.org/gnu/autoconf
(twemproxy的安裝要求autoconf的版本在2.64以上)
選擇autoconf-2.69
cd autoconf-2.69
make
make install
3、twemproxy下載安裝:
下載連結:https://github.com/twitter/twemproxy
建立安裝目錄:mkdir -p /usr/local/twemproxy
cd twemproxy-master
autoreconf -fvi
./configure --prefix=/usr/local/twemproxy/
make
make install
4、配置檔案:
[root@localhost twemproxy-master]# cat /usr/local/twemproxy/conf/nutcracker.yml
zhaogp:
listen: 127.0.0.1:7000
hash: fnv1a_64
distribution: ketama
auto_eject_hosts: true
redis: true
server_retry_timeout: 30000
server_failure_limit: 1
servers:
- 127.0.0.1:30001:1 master0
- 127.0.0.1:30002:1 master1
5、啟動:
nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml -p /usr/local/twemproxy/run/redisproxy.pid -o /usr/local/twemproxy/run/haha.log
6、測試:
[root@localhost ~]# redis-cli -p 7000
127.0.0.1:7000> set b1 test1
OK
127.0.0.1:7000> set b1111 test2
OK
127.0.0.1:7000>
127.0.0.1:7000>
127.0.0.1:7000> set b111 test3
OK
127.0.0.1:7000>
127.0.0.1:7000>
127.0.0.1:7000> set b11111 test3
OK
127.0.0.1:7000>
分別登陸 30001和30002,可以看到資料已經分別寫的不同的節點了。
測試節點當機場景:
手動關掉一個節點,本來應該分佈到該節點的資料,下次寫入會寫到其他節點。當改節點啟動後,
會重新分配到該節點。
這個重新hash分配會導致快取資料失效,甚至讀到錯誤資料(如某節點反覆當機)。可以嘗試結合redis-sentinel
做節點高可用
7、其他:
[root@localhost twemproxy-master]# nutcracker -h
This is nutcracker-0.4.0
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, --verbose=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)
如果一個伺服器上開啟多個twemproxy,需要指定不同的--stats-port,預設是22222:
例子:
[root@localhost twemproxy-master]# ps -ef | grep [n]utcracker
root 16085 1 0 May29 ? 00:00:00 nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml -p /usr/local/twemproxy/run/redisproxy.pid -o
/usr/local/twemproxy/run/haha.log
root 28443 1 0 May29 ? 00:00:00 nutcracker -d -c /usr/local/twemproxy/conf/nutcracker_new.yml -p /usr/local/twemproxy/run/redisproxy2.pid -o
/usr/local/twemproxy/run/haha2.log --stats-port=22221
參考:
https://github.com/twitter/twemproxy
http://mdba.cn/?p=157
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20625855/viewspace-1678566/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Redis 代理 twemproxyRedis
- Redis基礎篇(八)資料分片Redis
- Redis叢集 - cluster叢集、資料分片Redis
- 在 Istio 中實現 Redis 叢集的資料分片、讀寫分離和流量映象Redis
- Mycat中介軟體實現Mysql資料分片( 下篇)MySql
- Mycat中介軟體實現Mysql資料分片(上篇)MySql
- spring-data-redis遇到twemproxySpringRedis
- 架構設計之資料分片架構
- Redis多機資料庫實現Redis資料庫
- redis資料結構實現(一)Redis資料結構
- Rb(redis blaster),一個為 redis 實現 non-replicated 分片的 python 庫RedisASTPython
- 進階的Redis之雜湊分片原理與叢集實戰Redis
- Redis分片機制Redis
- Elasticsearch高階之-叢集搭建,資料分片Elasticsearch
- Redis 設計與實現:資料庫Redis資料庫
- Redis+TwemProxy(nutcracker)叢集方案部署記錄Redis
- 比Redis-cluster還好的redis分散式叢集(twemproxy代理)Redis分散式
- redis資料同步之redis-shakeRedis
- Redis 設計與實現 6:五大資料型別之字串Redis大資料資料型別字串
- Redis 設計與實現 9:五大資料型別之集合Redis大資料資料型別
- 《redis設計與實現》2-資料庫實現篇Redis資料庫
- Redis 資料庫、鍵過期的實現Redis資料庫
- Redis中單機資料庫的實現Redis資料庫
- Redis sds資料結構實現分析ZFRedis資料結構
- Redis 設計與實現 (二)--資料庫Redis資料庫
- mysql和redis實時同步資料怎麼實現MySqlRedis
- 如何使用 redis 實現限流Redis
- 分散式鎖之Redis實現分散式Redis
- Redis 設計與實現 (五)--多機資料庫的實現Redis資料庫
- Redis 設計與實現 8:五大資料型別之雜湊Redis大資料資料型別
- Redis 實戰篇:巧用資料型別實現億級資料統計Redis資料型別
- 破解分散式庫使用難點:資料分片策略分散式
- Redis 設計與實現 (一)--資料結構Redis資料結構
- 探索Redis設計與實現11:使用快照和AOF將Redis資料持久化到硬碟中Redis持久化硬碟
- Redis資料結構(一)-Redis的資料儲存及String型別的實現Redis資料結構型別
- 如何分片資料庫? - stackoverflow資料庫
- Redis設計於實現之字典Redis
- PHP 使用 Redis 實現分頁PHPRedis