創建redis節點
我先在127.0.0.1創建6個節點:
cd /data mkdir redis_cluster //創建集群目錄 mkdir 6380 6381 6382 6383 6384 6385 //分別代表六個節點 其對應端口 //創建6380節點為例,拷貝到6380目錄 cp /opt/redis/redis-4.0.1/redis.conf ./redis_cluster/6380/conf/ //拷貝到6381目錄 cp /opt/redis/redis-4.0.1/redis.conf ./redis_cluster/6381/conf/ //拷貝到6382目錄 cp /opt/redis/redis-4.0.1/redis.conf ./redis_cluster/6382/conf/
分別對文件夾中的3個文件修改對應的配置
port 6380 //端口6380 cluster-enabled yes //開啟集群 把注釋#去掉 cluster-config-file nodes_6380.conf //集群的配置 配置文件首次啟動自動生成 7000,7001,7002 cluster-node-timeout 5000 //請求超時 設置5秒夠了 appendonly yes //aof日志開啟 有需要就開啟,它會每次寫操作都記錄一條日志
啟動
cd /usr/local/bin ./redis-server /data/redis_cluster/6380/conf/redis.conf ./redis-server /data/redis_cluster/6381/conf/redis.conf ./redis-server /data/redis_cluster/6382/conf/redis.conf ./redis-server /data/redis_cluster/6383/conf/redis.conf ./redis-server /data/redis_cluster/6384/conf/redis.conf ./redis-server /data/redis_cluster/6385/conf/redis.conf
5、查看服務
ps -ef | grep redis #查看是否啟動成功
netstat -tnlp | grep redis #可以看到redis監聽端口
三、創建集群
前面已經准備好了搭建集群的redis節點,接下來我們要把這些節點都串連起來搭建集群。官方提供了一個工具:redis-trib.rb(/usr/local/redis-3.2.1/src/redis-trib.rb) ,它是用ruby寫的一個程序,所以我們還得安裝ruby.
yum -y install ruby ruby-devel rubygems rpm-build
再用 gem 這個命令來安裝 redis接口 gem是ruby的一個工具包.
gem install redis //等一會兒就好了
上面的步驟完事了,接下來運行一下redis-trib.rb
/opt/redis/redis-4.0.1/src/redis-trib.rb
看到這,應該明白了吧, 就是靠上面這些操作 完成redis集群搭建的.
確認所有的節點都啟動,接下來使用參數create 創建
/opt/redis/redis-4.0.1/src/redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
解釋下, --replicas 1 表示 自動為每一個master節點分配一個slave節點 上面有6個節點,程序會按照一定規則生成 3個master(主)3個slave(從)
前面已經提醒過的 防火牆一定要開放監聽的端口,否則會創建失敗。
運行中,提示Can I set the above configuration? (type 'yes' to accept): yes //輸入yes
接下來 提示 Waiting for the cluster to join..........
四、測試
1)get 和 set數據
redis-cli -c -p 6380
進入命令窗口,直接 set hello howareyou
直接根據hash匹配切換到相應的slot的節點上。
還是要說明一下,redis集群有16383個slot組成,通過分片分布到多個節點上,讀寫都發生在master節點。