Redis 3主-3從集羣的搭建(CentOS 7)

注意ip地址爲:

虛擬機ip設置

TYPE="Ethernet"
BOOTPROTO="static"
NAME="enp0s3"
DEVICE="enp0s3"
ONBOOT="yes"
IPADDR="172.18.25.174"
NETMASK="255.255.255.0"
GATEWAY="172.18.25.1"
DNS1=4.4.4.4
DNS2=8.8.8.8
IPV6INIT=no

 

1、Redis集羣的安裝及配置

一、redis的安裝

上傳redis的安裝包到/stx/app下,並安裝前端

mkdir -p /sxt/app
cd /sxt/app

或者使用wget下載node

yum -y install wget
wget http://download.redis.io/releases/redis-3.0.6.tar.gz

安裝gcc依賴c++

yum install gcc-c++

解壓redis壓縮包redis

tar -zxvf redis- 3.0.6.tar.gz

編譯redisvim

cd redis-3.0.6
make

安裝redis後端

mkdir /usr/local/redis
make install PREFIX=/usr/local/redis

啓動redisruby

第一種:前端方式啓動(ssh命令窗口關閉則redis-server程序結束,不推薦使用此方法)bash

cd /usr/local/redis/bin
./redis-server 第一種,強制關閉:Ctrl+c 第二種,正常關閉:./redis-cli shutdow(在當前系統下的其餘終端使用)

第二種:後端方式啓動app

cd /usr/local/redis/bin/
//將Redis解壓後的源碼包中的redis.conf文件拷貝到bin目錄下
cp /root/redis-3.0.6/redis.conf /usr/local/redis/bin/
//修改redis.conf文件
vim redis.conf
//輸入 ’/dae‘ 查找到 ’daemonize no‘ 將其修改成yes
/dae
./redis-server redis.conf
//查看啓動
ps -aux | grep redis
//關閉Redis
第一種,強制關閉:kill 進程的PIN
第二種,正常關閉:./redis-cli shutdown
   之後啓動redis
cd /usr/local/redis/bin
./redis-server redis.conf ./redis-cli

  //關閉
  quit
  ./redis-cli shutdownssh

配置防火牆端口

vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 6379 -j ACCEPT

 二、使用RVM安裝ruby腳本

先執行一條官方 https://rvm.io/ 複製來的長命令

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable
source  /etc/profile.d/rvm.sh
rvm list known

安裝ruby 2.4.1(ruby -v可查看已安裝版本 , gem -v)

rvm install 2.4.1

 三、redis-common集羣配置

在/opt下新建redis文件夾,存放redis公共的相關數據

cd /opt/
mkdir redis
cd redis/
mkdir conf  #存放redis集羣的公共配置
mkdir logs  #存放redis集羣的日誌信息
mkdir data  #存放redis集羣的數據

將原始的redis.conf配置文件拷貝到/opt/redis/conf,並修改公共的配置文件

cp /sxt/app/redis-3.0.6/redis.conf /opt/redis/conf
cd /opt/redis/conf
cp redis.conf redis-common.conf
vi redis-common.conf

一、前端啓動改成後端啓動

daemonize yes

二、註釋掉服務的進程id的記錄文件

# pidfile /var/run/redis.pid

三、註釋掉默認端口

# port 6379

四、註釋掉默認日誌保存路徑信息

# logfile ""

五、註釋調用默認的數據文件的名字

# dbfilename dump.rdb

六、配置集羣中數據文件的目錄

# dir ./
dir /opt/redis/data

七、註釋掉默認的公共配置aof日至追加文件

# appendfilename "appendonly.aof"

八、啓動集羣,去掉註釋

cluster-enabled yes

九、slot槽是否全覆蓋,默認爲false,建議設置爲no

cluster-require-full-coverage no

集羣每一個節點的配置

cd /usr/local/redis/bin
cp /sxt/app/redis-3.0.6/redis.conf redis-6380.conf
vi redis-6380.conf

一、引入集羣公共配置

# include /path/to/other.conf
include /opt/redis/conf/redis-common.conf

二、註釋掉默認啓動方式

# daemonize no

三、配置節點進程記錄文件(用節點的端口號進行區分)

pidfile /var/run/redis-6380.pid

四、配置節點端口號(每一個節點都不同,文件名對應端口名)

port 6380

五、配置集羣中每一個服務的日誌記錄文件(用端口號進行區分)

logfile "/opt/redis/logs/redis-6380.log"

六、配置集羣中每一個服務的數據文件的名稱(用端口號進行區分)

dbfilename dump-6380.rdb

七、配置集羣中每一個服務的aof日誌文件名稱(用端口號進行區分)

appendfilename "appendonly-6380.aof"

八、配置集羣中每一個服務的配置文件名稱(用端口號進行區分)

cluster-config-file nodes-6380.conf

 將修改好的redis-6380.conf再複製五份,並將裏面的端口給修改好!最後再配置一下防火牆端口

systemctl stop firewalld

 

3、Redis集羣測試

 一、啓動redis集羣

cd /usr/local/redis/bin/
./redis-server redis-6380.conf
./redis-server redis-6381.conf
./redis-server redis-6382.conf
./redis-server redis-6383.conf
./redis-server redis-6384.conf
./redis-server redis-6385.conf

 二、建立redis集羣

cd /sxt/app/redis-3.0.6/src
gem install redis  #安裝 redis 的相關依賴
./redis-trib.rb create --replicas 1 172.18.25.174:6380 172.18.25.174:6381 172.18.25.174:6382 172.18.25.174:6383 172.18.25.174:6384 172.18.25.174:6385

 三、鏈接redis集羣,進行測試

cd /usr/local/redis/bin/ ./redis-cli -c -p 6380 set x y
相關文章
相關標籤/搜索