Linux(Ubantu)Redis 搭建叢集
Redis 釋出的 5.x 系列和5.x之前的版本,進行叢集的構建方式有所調整而並不通用。
一、基礎環境準備
1.1 Linux下的C語言編譯環境
Redis是C語言開發的,安裝redis需要C語言的編譯環境。如果沒有gcc需要線上安裝。
CentOS:
yum install gcc tcl
yum install gcc-c++
Ubantu:
apt-get update apt-get upgrade apt-get install gcc # 或者 # 命令:>apt-get install build-essential # 在make時可能出現錯誤" error: jemalloc/jemalloc.h: No such file or directory",通過如下命令解決。 # 命令:>make MALLOC=libc
1.2 Redis4.x 之前需要安裝ruby環境
apt-get install ruby
gem install redis
1.3 Redis5.x 之後不需要安裝ruby環境
2018年十月 Redis 釋出了穩定版本的 5.0 版本,推出了各種新特性,其中一點是放棄 Ruby的叢集方式,改為 使用 C語言編寫的 redis-cli的方式,是叢集的構建方式複雜度大大降低。關於叢集的更新可以在 Redis5 的版本說明中看到,如下:
The cluster manager was ported from Ruby (redis-trib.rb) to C code inside redis-cli. check `redis-cli --cluster help ` for more info.
可以檢視Redis官網檢視叢集搭建方式,連線如下:
https://redis.io/topics/cluster-tutorial
二、建立叢集步驟
2.1 建立目錄並進入
mkdir ~/temp
cd ~/temp
2.2 下載原始碼並解壓編譯
# redis5.x
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar -zxvf redis-5.0.0.tar.gz
cd redis-5.0.0
make PREFIX=/home/weblogic/redis install
# redis4.x
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
tar -zxvf redis-5.0.0.tar.gz
cd redis-5.0.0
make PREFIX=/home/weblogic/redis install
2.3 建立6個Redis配置檔案
伺服器上搭建有6個節點的 Redis叢集,在路徑為/home/weblogic/redis/redis-cluster下建立6個資料夾代表6個例項。
# 6個配置檔案不能在同一個目錄
mkdir 7000 7001 7002 7003 7004 7005
分別給六個資料夾,建立日誌、資料和配置檔案存放路徑:
# 示例:/home/weblogic/redis/redis-cluster/7000/conf
mkdir /home/weblogic/redis/redis-cluster/檔名/conf
# 示例:/home/weblogic/redis/redis-cluster/7000/conf
mkdir /home/weblogic/redis/redis-cluster/檔名/log
# 示例:/home/weblogic/redis/redis-cluster/7000/conf
mkdir /home/weblogic/redis/redis-cluster/檔名/data
進去安裝redis的目錄分別將 redis.config 配置檔案 cp 到這6個目錄,並將6個目錄下的redis.config分別重名命為“檔名.config”,例如:7000.config
。
2.4 分別進入目錄修改配置檔案
port 7000 # 修改埠號對應目錄的埠號
bind 0.0.0.0 # Ip繫結 繫結本機ip或者改為 0.0.0.0
/home/weblogic/redis/redis-cluster/7000 # 資料位置dir ./ 改為>dir /home/weblogic/redis/redis-cluster/7000/data
cluster-enabled yes # 啟用叢集模式
cluster-config-file nodes-7000.conf # 叢集模式中節點的配置檔案
cluster-node-timeout 5000 # 超時時間
appendonly yes # redis資料持久化開啟,開啟AOF模式
daemonize yes # 後臺執行
protected-mode no # 非保護模式,允許 Redis 遠端訪問
pidfile /home/weblogic/redis/redis-cluster/7000/data/redis_7000.pid # pidfile 需要隨著資料夾的不同調增
# 如需密碼則修改如下配置
requirepass "guoyuan" # 在:# requirepass foobared 下新增密碼配置
masterauth "密碼" # masterauth <master-password> 下新增密碼配置
2.5 載入六個redis配置檔案啟動
# 進入redis的src目錄啟動redis (載入制定配置檔案啟動的方式) 6個都要啟動,注意換配置檔案位置
redis-server /home/weblogic/redis/redis-cluster/7000/7000.conf
redis-server /home/weblogic/redis/redis-cluster/7000/7001.conf
redis-server /home/weblogic/redis/redis-cluster/7000/7002.conf
redis-server /home/weblogic/redis/redis-cluster/7000/7003.conf
redis-server /home/weblogic/redis/redis-cluster/7000/7004.conf
redis-server /home/weblogic/redis/redis-cluster/7000/7005.conf
# ps程序看看是否都啟動
ps -ef|grep redis
2.5 建立redis叢集
2.5.1 建立redis4.x叢集
# 進入redis的src目錄
./redis-trib.rb create --replicas 1 0.0.0.0:7000 0.0.0.0:7001 0.0.0.0:7002 0.0.0.0:7003 0.0.0.0:7004 0.0.0.0:7005
安裝過程中,輸入yes:
無報錯,結尾出現[OK]即建立成功!
2.5.2 建立redis5.x叢集
# redis5.x用redis-cli方式 不用redis4.x用的redis-trib.rb方式
/home/weblogic/redis/src/redis-cli --cluster create 0.0.0.0:7000 0.0.0.0:7001 0.0.0.0:7002 0.0.0.0:7003 0.0.0.0:7004 0.0.0.0:7005 --cluster-replicas 1
安裝過程中,輸入yes:
至此,Reids5 叢集搭建完成。
三、Redis5叢集其他操作
Redis5 提供了關閉叢集的工具,在如下目錄:
/home/weblogic/redis/utils/create-cluster
開啟此檔案修改埠為我們自己的,如下所示:
埠PROT設定為6379,NODES為6,工具會自動累加1 生成 7000-7005 六個節點 用於操作。
3.1 修改後,執行如下命令關閉叢集:
/home/weblogic/redis/utils/create-cluster/create-cluster stop
3.2 重新啟動叢集
/home/weblogic/redis/utils/create-cluster/create-cluster start
3.3 使用指令碼檔案啟動叢集
#!/bin/sh
/home/weblogic/redis/src/redis-server /home/weblogic/redis/redis-cluster/7000/7000.conf
/home/weblogic/redis/src/redis-server /home/weblogic/redis/redis-cluster/7001/7001.conf
/home/weblogic/redis/src/redis-server /home/weblogic/redis/redis-cluster/7002/7002.conf
/home/weblogic/redis/src/redis-server /home/weblogic/redis/redis-cluster/7003/7003.conf
/home/weblogic/redis/src/redis-server /home/weblogic/redis/redis-cluster/7004/7004.conf
/home/weblogic/redis/src/redis-server /home/weblogic/redis/redis-cluster/7005/7005.conf
/home/weblogic/redis/src/redis-cli --cluster create 0.0.0.0:7000 0.0.0.0:7001 0.0.0.0:7002 0.0.0.0:7003 0.0.0.0:7004 0.0.0.0:7005 --cluster-replicas 1
----------------------------------------------------
本文為博主原創文章,轉載請註明出處!
-------------------------------