Redis-Cluster實戰-node
轉載請註明出處哈:http://carlosfu.iteye.com/blog/2240426 redis
1、準備redis(下載、編譯、安裝、配置目錄、數據目錄)app
1. 下載、編譯、安裝工具
Java代碼
spa
- cd /opt/soft
- wget http://download.redis.io/releases/redis-3.0.3.tar.gz
- tar xzf redis-3.0.3.tar.gz
- cd redis-3.0.3
- make
- make install
2. 配置目錄、數據目錄orm
Java代碼
視頻
- cd /opt/soft/redis-3.0.3
- mkdir -p data
- mkdir -p conf
3.創建軟連接:server
Java代碼
blog
- ln -s /opt/soft/redis-3.0.3 /opt/soft/redis
2、配置、啓動Redis節點(本例子以3主、3從組成Redis-Cluster)get
(1) 配置redis節點,在conf目錄下添加6個(7000-7005)redis-${port}.conf做爲6個節點的配置文件
其中7000-7005是六個端口號
Java代碼 ![收藏代碼](http://static.javashuo.com/static/loading.gif)
- port 7000
- cluster-enabled yes
- cluster-config-file nodes-7000.conf
- cluster-node-timeout 5000
- dir "/opt/soft/redis/data/"
- appendonly yes
- appendfilename "appendonly-7000.aof"
- daemonize yes
生成另外5個文件
Java代碼 ![收藏代碼](http://static.javashuo.com/static/loading.gif)
- sed 's/7000/7001/g' redis-7000.conf > redis-7001.conf
- sed 's/7000/7002/g' redis-7000.conf > redis-7002.conf
- sed 's/7000/7003/g' redis-7000.conf > redis-7003.conf
- sed 's/7000/7004/g' redis-7000.conf > redis-7004.conf
- sed 's/7000/7005/g' redis-7000.conf > redis-7005.conf
(2) 啓動6個節點。
Java代碼 ![收藏代碼](http://static.javashuo.com/static/loading.gif)
- redis-server /opt/soft/redis/conf/redis-7000.conf
- redis-server /opt/soft/redis/conf/redis-7001.conf
- redis-server /opt/soft/redis/conf/redis-7002.conf
- redis-server /opt/soft/redis/conf/redis-7003.conf
- redis-server /opt/soft/redis/conf/redis-7004.conf
- redis-server /opt/soft/redis/conf/redis-7005.conf
查看節點是否都已經啓動:
Java代碼 ![收藏代碼](http://static.javashuo.com/static/loading.gif)
- [@zw_53_162 conf]#
- [@zw_53_162 conf]# ps -ef | grep redis
- root 26007 1 0 21:56 ? 00:00:00 redis-server *:7000 [cluster]
- root 26011 1 0 21:56 ? 00:00:00 redis-server *:7001 [cluster]
- root 26019 1 0 21:56 ? 00:00:00 redis-server *:7002 [cluster]
- root 26023 1 0 21:56 ? 00:00:00 redis-server *:7003 [cluster]
- root 26033 1 0 21:56 ? 00:00:00 redis-server *:7004 [cluster]
- root 26047 1 0 21:56 ? 00:00:00 redis-server *:7005 [cluster]
查看單個節點:(此時六個節點是分散的,沒有造成集羣,全部cluster_state=fail)
Java代碼 ![收藏代碼](http://static.javashuo.com/static/loading.gif)
- [@zw_53_162 conf]# redis-cli -c -p 7000
- 127.0.0.1:7000> cluster info
- cluster_state:fail
- cluster_slots_assigned:0
- cluster_slots_ok:0
- cluster_slots_pfail:0
- cluster_slots_fail:0
- cluster_known_nodes:1
- cluster_size:0
- cluster_current_epoch:0
- cluster_my_epoch:0
- cluster_stats_messages_sent:0
- cluster_stats_messages_received:0
3、使用Redis-Cluster的Ruby工具完成集羣的搭建:
Java代碼 ![收藏代碼](http://static.javashuo.com/static/loading.gif)
- /opt/soft/redis/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
安裝信息:
Java代碼 ![收藏代碼](http://static.javashuo.com/static/loading.gif)
- >>> Creating cluster
- # ping全部節點,若是有一個不OK,安裝就結束了。
- Connecting to node 127.0.0.1:7000: OK
- Connecting to node 127.0.0.1:7001: OK
- Connecting to node 127.0.0.1:7002: OK
- Connecting to node 127.0.0.1:7003: OK
- Connecting to node 127.0.0.1:7004: OK
- Connecting to node 127.0.0.1:7005: OK
- # 主從節點確認
- >>> Performing hash slots allocation on 6 nodes...
- Using 3 masters:
- 127.0.0.1:7000
- 127.0.0.1:7001
- 127.0.0.1:7002
- Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
- Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
- Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
- M: 11e6c12da2521b1877c93cf64437af23b21889b3 127.0.0.1:7000
- slots:0-5460 (5461 slots) master
- M: cee69d4f42bce422e864e0324679f1fbf7506dba 127.0.0.1:7001
- slots:5461-10922 (5462 slots) master
- M: 32ff9de3a4bcdc9423fdf269b0d1588d50fd18e3 127.0.0.1:7002
- slots:10923-16383 (5461 slots) master
- S: 0e5d897a3be6033ef6733fc37a974124e9e89cc8 127.0.0.1:7003
- replicates 11e6c12da2521b1877c93cf64437af23b21889b3
- S: b294779edee369c669c44848d71d599c42a0bfe8 127.0.0.1:7004
- replicates cee69d4f42bce422e864e0324679f1fbf7506dba
- S: f57f64229b6a7501d42bd70192eec4acd56422d6 127.0.0.1:7005
- replicates 32ff9de3a4bcdc9423fdf269b0d1588d50fd18e3
- Can I set the above configuration? (type 'yes' to accept): yes(人工確認安裝是否成功)
- #meet
- >>> Nodes configuration updated
- >>> Assign a different config epoch to each node
- >>> Sending CLUSTER MEET messages to join the cluster
- Waiting for the cluster to join..
- >>> Performing Cluster Check (using node 127.0.0.1:7000)
- #分配slots
- M: 11e6c12da2521b1877c93cf64437af23b21889b3 127.0.0.1:7000
- slots:0-5460 (5461 slots) master
- M: cee69d4f42bce422e864e0324679f1fbf7506dba 127.0.0.1:7001
- slots:5461-10922 (5462 slots) master
- M: 32ff9de3a4bcdc9423fdf269b0d1588d50fd18e3 127.0.0.1:7002
- slots:10923-16383 (5461 slots) master
- M: 0e5d897a3be6033ef6733fc37a974124e9e89cc8 127.0.0.1:7003
- slots: (0 slots) master
- replicates 11e6c12da2521b1877c93cf64437af23b21889b3
- M: b294779edee369c669c44848d71d599c42a0bfe8 127.0.0.1:7004
- slots: (0 slots) master
- replicates cee69d4f42bce422e864e0324679f1fbf7506dba
- M: f57f64229b6a7501d42bd70192eec4acd56422d6 127.0.0.1:7005
- slots: (0 slots) master
- replicates 32ff9de3a4bcdc9423fdf269b0d1588d50fd18e3
- [OK] All nodes agree about slots configuration.
- >>> Check for open slots...
- >>> Check slots coverage...
- [OK] All 16384 slots covered.
確認集羣是否安裝成功:
Java代碼 ![收藏代碼](http://static.javashuo.com/static/loading.gif)
- [@zw_53_162 redis]# redis-cli -c -p 7000
- 127.0.0.1:7000> cluster info
- cluster_state:ok
- cluster_slots_assigned:16384
- cluster_slots_ok:16384
- cluster_slots_pfail:0
- cluster_slots_fail:0
- cluster_known_nodes:6
- cluster_size:3
- cluster_current_epoch:6
- cluster_my_epoch:1
- cluster_stats_messages_sent:985
- cluster_stats_messages_received:985
查看slots使用狀況:
Java代碼 ![收藏代碼](http://static.javashuo.com/static/loading.gif)
- 127.0.0.1:7000> cluster slots
- 1) 1) (integer) 5461
- 2) (integer) 10922
- 3) 1) "127.0.0.1"
- 2) (integer) 7001
- 4) 1) "127.0.0.1"
- 2) (integer) 7004
- 2) 1) (integer) 10923
- 2) (integer) 16383
- 3) 1) "127.0.0.1"
- 2) (integer) 7002
- 4) 1) "127.0.0.1"
- 2) (integer) 7005
- 3) 1) (integer) 0
- 2) (integer) 5460
- 3) 1) "127.0.0.1"
- 2) (integer) 7000
- 4) 1) "127.0.0.1"
- 2) (integer) 7003
4、完整安裝視頻:
見附件。