一、安裝redis單機(略)
二、安裝redis-cluster
1、新建文件夾redis-cluster
2、將單機redis的bin目錄拷到新建的文件夾
3、新建集群ip對應文件夾(以我本地192.168.1.160為例),新建redis-160-01和redis-160-02文件夾
mkdir redis-160-01
mkdir redis-160-02
4、將目錄redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis.conf、redis-sentinel、redis-server拷至新文件夾:
cp redis-benchmark redis-check-aof redis-check-rdb redis-cli redis.conf redis-sentinel redis-server redis-160-01/
cp redis-benchmark redis-check-aof redis-check-rdb redis-cli redis.conf redis-sentinel redis-server redis-160-02/
5、編輯redis.conf文件:
port 7000 #端口7000,7001,7002,7003,7004,7005
cluster-enabled yes #開啟集群
cluster-config-file nodes.conf #集群配置信息,開啟集群后自動生成
cluster-node-timeout 5000 #請求超時時長
appendonly yes #開啟aof日志,它會每次寫操作都記錄一條日志
daemonize yes #redis后台運行
bind 192.168.100.21 #默認ip為127.0.0.1 需要改為其他節點機器可訪問的ip 否則創建集群時無法訪問對應的端口,無法創建集群
pidfile /opt/module/redis-Cluster/7000/redis_7000.pid #pidfile文件對應7000,7001,7002,7003,7004,7005
dir /opt/module/redis-Cluster/7000/ #數據文件存放位置對應7000,7001,7002,7003,7004,7005(查找內容直接輸入”/內容”)
6、啟動節點
cd /opt/redis-cluster/redis-160-01/
./redis-server redis.conf
cd /opt/redis-cluster/redis-160-02/
./redis-server redis.conf
cd /opt/redis-cluster/redis-177-01/
./redis-server redis.conf
cd /opt/redis-cluster/redis-177-02/
./redis-server redis.conf
cd /opt/redis-cluster/redis-230-01/
./redis-server redis.conf
cd /opt/redis-cluster/redis-230-02/
./redis-server redis.conf
7、確認進程已成功啟動:
三、安裝ruby
1、檢查之前是否已存在其它ruby版本,如存在,先卸載:
yum remove ruby
2、下載ruby2.5.3:
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.gz
3、解壓
tar zxvf ruby-2.5.3.tar.gz
4、安裝ruby
cd ruby-2.5.3
執行安裝路徑指定
./configure --prefix=/opt/ruby
執行make
make
然后在執行make install
make install
5、檢查
./ruby -v
能看到版本號,說明已安裝成功。
6、配置ruby啟動參數
echo "export PATH=$PATH:/opt/ruby/bin" >> /etc/profile
source /etc/profile
echo $PATH
四、啟動集群
1、進到集群服務器(三台),執行:
gem install redis
2、進入160服務器,執行以下命令:
/opt/redis/src/redis-trib.rb create --replicas 1 192.168.1.160:10001 192.168.1.160:10002 192.168.1.177:10003 192.168.1.177:10004 192.168.1.230:10005 192.168.1.230:10006
啟動完畢,測試:
10001從10005取到foo的value值,成功!