Centos7安裝Redis(集群模式)


環境:centos7.6 redis4.0
模擬在一個Centos7下安裝6個redis實例搭建集群 3主3從

安裝wget
yum -y install wget

安裝gcc
yum -y install gcc automake autoconf libtool make

下載redis
cd /usr/local/software
wget http://download.redis.io/releases/redis-4.0.0.tar.gz

解壓
tar -xzvf redis-4.0.0.tar.gz

切換至程序目錄
cd redis-4.0.0

執行make編譯Redis:
make MALLOC=libc
注意:make命令執行完成編譯后,會在src目錄下生成6個可執行文件,分別是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-sentinel。

安裝Redis:
make install


--------------------
計划集群中 Redis 節點的端口號為 7001-7006 ,端口號即集群下各實例文件夾。數據存放在 端口號/data 文件夾中,日志存放在 端口號/log 文件夾中
cd /usr/local/software
mkdir redis-cluster
cd redis-cluster
mkdir -p 7001/data 7002/data 7003/data 7004/data 7005/data 7006/data
mkdir -p 7001/log 7002/log 7003/log 7004/log 7005/log 7006/log

把安裝好的Redis的redis.conf 拷貝到這6個端口目錄中
cd redis-4.0.0
cp redis.conf /usr/local/software/redis_cluster/7001
cp redis.conf /usr/local/software/redis_cluster/7002
cp redis.conf /usr/local/software/redis_cluster/7003
cp redis.conf /usr/local/software/redis_cluster/7004
cp redis.conf /usr/local/software/redis_cluster/7005
cp redis.conf /usr/local/software/redis_cluster/7006

修改各個端口的redis配置內容如下,以7001為例

#端口號
port 7001 
#默認ip為127.0.0.1 需要改為其他節點機器可訪問的ip(本機ip) 否則創建集群時無法訪問對應的端口,無法創建集群 
bind 192.168.182.129
#數據文件存放位置
dir /usr/local/software/redis-cluster/7001/data/
#日志文件存放位置
logfile /usr/local/software/redis-cluster/7001/log/redis.log
#redis后台運行 
daemonize yes
#為保證redis-trib.rb工具的正常運行,需要設置為no,完成后可以改回yes,但每次使用redis-trib.rb都需要改回為no
protected-mode no
#pidfile文件 
pidfile /var/run/redis_7001.pid 
#開啟集群 
cluster-enabled yes 
#集群的配置 配置文件首次啟動自動生成
cluster-config-file nodes_7001.conf 
#請求超時 默認15秒,可自行設置 
cluster-node-timeout 15000 
#rdb文件名
dbfilename dump-7001.rdb
#aof日志開啟 有需要就開啟,它會每次寫操作都記錄一條日志 
appendonly yes 
#aof文件名 
appendfilename "appendonly-7001.aof"
#設置密碼
masterauth 123456 
requirepass 123456

 


注意:各個節點密碼都必須一致,否則Redirected就會失敗


在redis-cluster 下創建 bin 文件夾,用來存放集群運行腳本,並把安裝好的 Redis 的 src 路徑下的運行腳本拷貝過來
cd /usr/local/software/redis_cluster
mkdir bin
cd /usr/local/software/redis-4.0.0
cp -r src/* /usr/local/software/redis-cluster/bin/

啟動節點
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7001/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7002/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7003/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7004/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7005/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7006/redis.conf

可以檢查一下6個節點是否啟動成功:ps -ef | grep redis


創建集群

由於 Redis 集群需要使用 ruby 命令,所以我們需要安裝 ruby 和相關接口
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis

在執行gem install redis時
如果提示:
gem install redis
ERROR: Error installing redis:
redis requires Ruby version >= 2.3.0

原因,ruby版本小於了2.3.0

安裝RVM
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -L https://get.rvm.io | bash -s stable
find / -name rvm -print

source /usr/local/rvm/scripts/rvm

查看rvm庫中已知的ruby版本
rvm list known

根據列表顯示 選擇一個高版本安裝
rvm install 2.5.5

使用一個ruby版本
rvm use 2.5.5

設置默認版本
rvm use 2.5.5 --default

查看ruby版本
ruby --version

繼續執行安裝redis
gem install redis


Redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中
上面已經將它復制到 /usr/local/software/redis_cluster/bin 目錄中,可以直接在命令行中使用了
/usr/local/software/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.182.129:7001 192.168.182.129:7002 192.168.182.129:7003 192.168.182.129:7004 192.168.182.129:7005 192.168.182.129:7006

節點設置密碼之后如果需要使用redis-trib.rb的各種命令
則會報錯 Sorry, can’t connect to node

解決方法:找到client.rb 然后修改默認password為上面設置的密碼
client.rb路徑可以通過find命令查找:
find / -name 'client.rb'
類似/usr/local/rvm/gems/ruby-2.5.5/gems/redis-4.1.2/lib/redis/client.rb

執行過程中,可能需要輸入 yes
從屏幕輸出,可以很容易地看出哪些是主(master)節點,哪些是從(slave)節點

--replicas 1 表示主從復制比例為 1:1,即一個主節點對應一個從節點;然后,默認給我們分配好了每個主節點和對應從節點服務,以及 solt 的大小

驗證是否成功安裝好集群
通過客戶端命令連接上,通過集群命令看一下狀態和節點信息
/usr/local/software/redis-cluster/bin/redis-cli -c -h 192.168.182.129 -p 7001 -a 123456
cluster info
cluster nodes
設置一個key值
set key1 value1
keys *
get key1

然后登錄另外一個實例
/usr/local/software/redis-cluster/bin/redis-cli -c -h 192.168.182.129 -p 7002 -a 123456
get key1
如果返回value1,說明集群運作正常

 

開放指定端口

firewall-cmd --zone=public --add-port=7001/tcp --permanent
firewall-cmd --zone=public --add-port=7002/tcp --permanent
firewall-cmd --zone=public --add-port=7003/tcp --permanent
firewall-cmd --zone=public --add-port=7004/tcp --permanent
firewall-cmd --zone=public --add-port=7005/tcp --permanent
firewall-cmd --zone=public --add-port=7006/tcp --permanent
firewall-cmd --reload

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM