Centos 7.5安裝部署redis 5.0.0集群
阿新 • • 發佈:2018-11-21
per 追加 onf redis3 分享圖片 c-c 防火墻 conf tcp Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。和Memcached類似,但它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set -有序集合)和hash(哈希類型)。與Memcached相同的是,為了保證訪問效率,數據都是緩存在內存中;與Memcached不同的是,redis會周期性的把更新的數據寫入磁盤或者寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
Redis的數據可以從master(主)服務器向任意數量的slave(從)服務器上同步,從服務器也可以是關聯其他從服務器的主服務器,執行單層樹復制,是Redis集群的一個重要特性。Redis集群最少要求6個節點,共需要6臺機器,由於資源有限,我這邊準備了3臺機器,每臺機器上配置兩個節點。
系統環境
Redis的數據可以從master(主)服務器向任意數量的slave(從)服務器上同步,從服務器也可以是關聯其他從服務器的主服務器,執行單層樹復制,是Redis集群的一個重要特性。Redis集群最少要求6個節點,共需要6臺機器,由於資源有限,我這邊準備了3臺機器,每臺機器上配置兩個節點。
主機名 | IP地址 | 操作系統 | 節點 |
---|---|---|---|
Redis1 | 192.168.2.206 | Centos 7.5 64位 | Master port 7001、slave port 7002 |
Redis2 | 192.168.2.209 | Centos 7.5 64位 | Master port 7001、slave port 7002 |
Redis3 | 192.168.2.210 | Centos 7.5 64位 | Master port 7001、slave port 7002 |
一、安裝redis
1、安裝編譯相關軟件包
[root@redis1 ~]# yum -y install make gcc gcc-c++ wget
2、下載redis並解壓
[root@redis1 tmp]# wget http://download.redis.io/releases/redis-5.0.0.tar.gz
[root@redis1 tmp]# scp redis-5.0.0.tar.gz [email protected]:/tmp/
[root@redis1 tmp]# scp redis-5.0.0.tar.gz [email protected]:/tmp/
[root@redis1 tmp]# tar zxvf redis-5.0.0.tar.gz
3、安裝redis
[root@redis1 tmp]# cd redis-5.0.0/ [root@redis1 redis-5.0.0]# make [root@redis1 redis-5.0.0]# make install PREFIX=/data/redis
出現上圖畫面表示安裝成功
二、配置集群環境
1、復制配置文件
註:每臺機器兩個實例,故需要復制兩份對應的配置文件
[root@redis1 redis-5.0.0]# mkdir /data/redis/conf
[root@redis1 redis-5.0.0]# cp redis.conf /data/redis/conf/redis-7001.conf
[root@redis1 redis-5.0.0]# cp redis.conf /data/redis/conf/redis-7002.conf
2、修改配置文件
修改以下地方
bind 192.168.2.206 #redis監聽的本地IP地址
port 7001 #監聽端口,另一個節點改為7002
daemonize yes #開啟後臺運行,no表示運行在前臺
pidfile /var/run/redis_7001.pid #pid文件,另一個節點改為7002
appendonly yes #開啟aof日誌,每次寫操作都會記錄一條日誌
cluster-enabled yes #開啟集群,把註釋#去掉
cluster-config-file nodes-7001.conf #集群的配置文件,首次啟動會自動創建,另一個節點改為7002
cluster-node-timeout 15000 #集群節點連接超時時間,15秒
3、添加firewalld防火墻允許端口
[root@redis1 redis-5.0.0]# firewall-cmd --permanent --add-port=7001-7002/tcp
[root@redis1 redis-5.0.0]# firewall-cmd --permanent --add-port=17001-17002/tcp
[root@redis1 redis-5.0.0]# firewall-cmd --reload
4、啟動redis服務
創建啟動腳本,redis-all.sh
#!/bin/bash
/data/redis/bin/redis-server /data/redis/conf/redis-7001.conf
/data/redis/bin/redis-server /data/redis/conf/redis-7002.conf
將腳本分發到另外兩臺主機上
[root@redis1 ~]# scp redis-all.sh [email protected]:/root/
[root@redis1 ~]# scp redis-all.sh [email protected]:/root/
運行腳本,啟動redis,每個節點都要啟動
[root@redis1 ~]# sh redis-all.sh
5、啟動集群
創建啟動集群腳本,redis-cluster.sh
#!/bin/bash
/data/redis/bin/redis-cli --cluster create 192.168.2.206:7001 192.168.2.209:7001 192.168.2.210:7001 192.168.2.206:7002 192.168.2.209:7002 192.168.2.210:7002 --cluster-replicas 1
參數說明
--cluster create:表示創建redis集群
--cluster-replicas 1:表示為集群中的每一個主節點指定一個從節點,即一比一的復制。
將腳本分發到另外兩臺主機上
[root@redis1 ~]# scp redis-cluster.sh [email protected]:/root/
[root@redis1 ~]# scp redis-cluster.sh [email protected]:/root/
運行腳本,啟動集群,只需要在其中一個節點啟動即可
[root@redis1 ~]# sh redis-cluster.sh
註:中途需要輸入yes來確認
三、測試
1、設置redis集群密碼
註:所有節點都需要設置密碼,且密碼必須一致。
[root@redis1 ~]# /data/redis/bin/redis-cli -h 192.168.2.206 -p 7001 -c
192.168.2.206:7001> config set masterauth xuad123456
192.168.2.206:7001> config set requirepass xuad123456
192.168.2.206:7001> exit
2、將密碼寫入配置文件
註:所有節點都需要將密碼寫入配置文件
[root@redis1 ~]# /data/redis/bin/redis-cli -h 192.168.2.206 -p 7001 -c -a xuad123456
192.168.2.206:7001> config rewrite
192.168.2.206:7001> exit
3、查看密碼
[root@redis1 ~]# /data/redis/bin/redis-cli -h 192.168.2.206 -p 7001 -c -a xuad123456
192.168.2.209:7001> config get masterauth
192.168.2.209:7001> config get requirepass
Centos 7.5安裝部署redis 5.0.0集群