linux環境redis5.0.8集群搭建
redis5.0.8集群搭建
redis5.0.8集群搭建
redis集群的搭建方式分兩種
1.多台機器上搭建
2.在一台機器上搭建
redis集群的搭建方法有兩種
1.redis-cli搭建
2.create-cluster搭建(簡單快速)
安裝redis
redis下載地址:http://redis.io/download
1、安裝gcc
yum install gcc
2、把下載好的redis-5.0.8.tar.gz放在/usr/local/redis文件夾下,並解壓
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
tar xzf redis-5.0.8.tar.gz cd redis-5.0.8
3、進入到解壓好的redis-5.0.8目錄下,進行編譯與安裝
make & make install
src/redis-server redis.conf
(注意要使用后台啟動,所以修改redis.conf里的daemonize改為yes)
5、驗證啟動是否成功
ps -ef | grep redis
6、進入redis客戶端
cd /usr/local/redis/redis-5.0.8/src ./redis-cli
7、退出客戶端
exit
8、退出redis服務:
//所有的redis都會退出 pkill redis-server //退出指定進程 kill 進程號 src/redis-cli shutdown
開始搭建集群
因為redis集群至少需要6台(3主3從),為了減少工作量我們選擇在一台虛擬機上來完成搭建都任務。
使用redis-cli搭建
1.首先創建6個空文件
mkdir -p /usr/local/redis_cluster mkdir 7001 7002 7003 7004 7005 7006
2.把redis-server和redis.conf分別粘貼到7001~7006這個六個文件夾中
cp redis-server /usr/local/redis_cluster/7001 cp redis.conf /usr/local/redis_cluster/7001
3.修改redis.conf(因為在一台電腦上搭建,所以6個配置文件分別配置不同的端口)
1)port 7001 //設置端口號
2)dir /usr/local/redis_cluster/7001/ //數據存放位置,必須要指定
3)cluster-enabled yes //啟動集群模式
4)cluster-config-file nodes-7001.conf //集群節點信息文件
6)cluster-node-timeout 5000
bind 127.0.0.1 //去掉bind綁定訪問ip信息
protected-mode no //關閉保護模式
9)appendonly yes //開啟AOF模式,默認的持久化上RDB
4.啟動redis服務
./redis-server ./redis.conf //驗證服務是否啟動 ps -ef|grep redis
5.創建redis集群(5.0版本以后直接使用redis-cli)
redis-cli -a *** --cluster create 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 127.0.0.1:7006 --cluster-replicas 1 //-a *** 密碼 如果redis.conf中配置了密碼創建集群時需要添加 //--cluster-replicas 1 從節點個數
//--cluster-replicas 1寫在中間可能會報Unrecognized option or bad number of args for: '-cluster-replicas' redis-cli -a *** --cluster create --cluster-replicas 1 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 127.0.0.1:7006
使用create-cluster搭建
//把redis-server拷貝到../../src/目錄下 [root@hadoop1 7001]# ./create-cluster start Starting 30001 Starting 30002 Starting 30003 Starting 30004 Starting 30005 Starting 30006 [root@hadoop1 7001]# ./create-cluster create [ERR] Node 127.0.0.1:30001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0. //[ERR] Node 127.0.0.1:30001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.需解決方法: 1)、將需要新增的節點下aof、rdb等本地備份文件刪除; 2)、同時將新Node的集群配置文件刪除,即:刪除你redis.conf里面cluster-config-file所在的文件; 3)、再次添加新節點如果還是報錯,則登錄新Node,./redis-cli–h x –p對數據庫進行清除:
驗證集群
1.登錄集群節點
./redis-cli -a *** -h 127.0.0.1 -p 7001
2.查看集群狀態
//查看集群狀態 127.0.0.1:7001> 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_ping_sent:3524 cluster_stats_messages_pong_sent:3614 cluster_stats_messages_sent:7138 cluster_stats_messages_ping_received:3609 cluster_stats_messages_pong_received:3524 cluster_stats_messages_meet_received:5 cluster_stats_messages_received:7138
3.查看集群主從關系
//查詢集群的主從關系 127.0.0.1:7001>cluster nodes //9eb50b4365d8811c7fdeb92b4668a46abc552ab8 #id //127.0.0.1:7002 #地址:端口 //5461-10922 #hash槽 //master #主節點 //slave #從節點 //slave 9eb50b4365d8811c7fdeb92b4668a46abc552ab8 #slave后面的id就是所屬主節點的id 9eb50b4365d8811c7fdeb92b4668a46abc552ab8 127.0.0.1:7002@17002 master - 0 1588771618624 2 connected 5461-10922 a4d7639782429c445008244596947348747b6197 127.0.0.1:7003@17003 master - 0 1588771617000 3 connected 10923-16383 3a0b6630bc10d4c7a12240e831a3eb94875f0066 127.0.0.1:7001@17001 myself,master - 0 1588771614000 1 connected 0-5460 f2bcc99c9db6611b76ba00ce533ff944799af04d 127.0.0.1:7006@17006 slave 9eb50b4365d8811c7fdeb92b4668a46abc552ab8 0 1588771616000 6 connected da1e75f70d4c666e8d33be98ac8e0cce244d73b1 127.0.0.1:7005@17005 slave 3a0b6630bc10d4c7a12240e831a3eb94875f0066 0 1588771617612 5 connected 32fba02c422ba48013bb6dcec32d8ff14ca9acc2 127.0.0.1:7004@17004 slave a4d7639782429c445008244596947348747b6197 0 1588771617000 4 connected