redis 集羣搭建

1.redies版本,redis-5.0.7,(注意:5.0版本之後將不再需要ruby)準備三臺centos 7的機器:如下圖機器的分配情況(每臺機器關閉防火牆):
主從方式:三主三備
IP	            master節點	        salve節點
192.168.0.220	wintop_redies1:7001	wintop_redies1:7002
192.168.0.221	wintop_redies2:7001	wintop_redies2:7002
192.168.0.222	wintop_redies3:7001	wintop_redies3:7002

2.如果centos中沒有gcc環境,則需要先安裝gcc。如果有就直接看下一步。
[root@localhost tools]# yum install -y gcc 
3.解壓redis包到當前目錄下
[root@localhost tools]# tar -zxvf redis-5.0.7.tar.gz 
4.進入剛解壓出來的redis目錄,開始編譯安裝
[root@localhost tools]# cd redis-5.0.5/ [root@localhost redis-5.0.5]# make && make PREFIX=/usr/local/redis install 
5.看是否編譯安裝成功,執行 如下命令,如果輸出0 表示redis安裝成功了
[root@localhost redis-5.0.5]# echo $? 
0 
6.配置環境變量,在/etc/profile文件最後添加如下內容:
[root@localhost tools]# vim /etc/profile 
###### redis env ######
export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin
7.分別創建兩個7001和7002的配置文件目錄conf,日誌目錄logs,數據存儲目錄data,如下命令:
mkdir -p /usr/local/redis/redis_cluster/7001/conf/ 
mkdir -p /usr/local/redis/redis_cluster/7001/logs/ 
mkdir -p /usr/local/redis/redis_cluster/7001/data/  
mkdir -p /usr/local/redis/redis_cluster/7002/conf/ 
mkdir -p /usr/local/redis/redis_cluster/7002/logs/ 
mkdir -p /usr/local/redis/redis_cluster/7002/data/ 
8.建7001的配置文件,並添加如下內容:
vim /usr/local/redis/redis_cluster/7001/conf/redis.conf  

# 綁定服務器域名或IP地址 
bind 192.168.0.200 
# 設置端口,區分集羣中Redis的實例 
port 7001 
# 後臺運行 
daemonize yes 
# pid進程文件名,以端口號命名 
pidfile /var/run/redis-7001.pid 
# 日誌文件名稱,以端口號爲目錄來區分 
logfile /usr/local/redis/redis_cluster/7001/logs/redis.log 
# 數據文件存放地址,以端口號爲目錄名來區分 
dir /usr/local/redis/redis_cluster/7001/data 
# 啓用集羣 
cluster-enabled yes 
# 配置每個節點的配置文件,同樣以端口號爲名稱 
cluster-config-file nodes_7001.conf 
# 配置集羣節點的超時時間 
cluster-node-timeout 15000 
# 啓動AOF增量持久化策略 
appendonly yes 
# 發生改變,則記錄日誌 
appendfsync always
9.創建7002的配置文件,並添加如下內容:
vim /usr/local/redis/redis_cluster/7002/conf/redis.conf  

# 綁定服務器域名或IP地址 
bind 192.168.0.200
# 設置端口,區分集羣中Redis的實例 
port 7002 
# 後臺運行 daemonize yes 
# pid進程文件名,以端口號命名 
pidfile /var/run/redis-7002.pid 
# 日誌文件名稱,以端口號爲目錄來區分 
logfile /usr/local/redis/redis_cluster/7002/logs/redis.log 
# 數據文件存放地址,以端口號爲目錄名來區分 
dir /usr/local/redis/redis_cluster/7002/data 
# 啓用集羣 
cluster-enabled yes 
# 配置每個節點的配置文件,同樣以端口號爲名稱 
cluster-config-file nodes_7002.conf 
# 配置集羣節點的超時時間 
cluster-node-timeout 15000 
# 啓動AOF增量持久化策略 
appendonly yes 
# 發生改變,則記錄日誌 
appendfsync always

以上流程以220爲例,其他節點相同

10.在保證上面220,221,222都配置完成後,開始啓動220,221,222各節點,所有節點執行啓動命令
redis-server /usr/local/redis/redis_cluster/7001/conf/redis.conf 
redis-server /usr/local/redis/redis_cluster/7002/conf/redis.conf
11.查看各機器上的各節點是否都啓動成功
[root@wintop-redies3 ~]# ps -ef | grep redis
root       2681      1  0 14:46 ?        00:00:00 redis-server 192.168.0.222:7001 [cluster]
root       2687      1  0 14:47 ?        00:00:00 redis-server 192.168.0.222:7002 [cluster]
root       2713   2695  0 14:49 pts/1    00:00:00 grep --color=auto redis
12.使用 reids-cli 創建Redis集羣 (注:這裏必須使用IP)
redis-cli --cluster create 192.168.0.220:7001 192.168.0.221:7001 192.168.0.222:7001 192.168.0.220:7002 192.168.0.221:7002 192.168.0.222:7002 --cluster-replicas 1 
13.查看我們剛創建集羣的狀態,如下命令:(在3臺集羣中的任意一臺機器查看任意節點都一樣,會帶出所有的節點信息)
[root@wintop-redies1 ~]# redis-cli --cluster check 192.168.0.220:7001
192.168.0.220:7001 (41cff485...) -> 1 keys | 5461 slots | 1 slaves.
192.168.0.222:7001 (feee6a96...) -> 1 keys | 5461 slots | 1 slaves.
192.168.0.221:7001 (6f76ed7d...) -> 0 keys | 5462 slots | 1 slaves.
[OK] 2 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.220:7001)
M: 41cff4851ba6855e61fb3535dd53d329026587de 192.168.0.220:7001
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: feee6a9623c65d41e0a3cfec2549ab8102c4d3e3 192.168.0.222:7001
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: eef0f0520546060ffb9c4b276b1aacdc8e68e964 192.168.0.221:7002
   slots: (0 slots) slave
   replicates 41cff4851ba6855e61fb3535dd53d329026587de
M: 6f76ed7df33775a9cb7c3ce12fd28a527f942ec1 192.168.0.221:7001
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 03e1579a63f773fe8ff0df25d09cea8d2449f1b6 192.168.0.220:7002
   slots: (0 slots) slave
   replicates feee6a9623c65d41e0a3cfec2549ab8102c4d3e3
S: a4737f4c75d6c70aef37ce0a5f163afd7502eb67 192.168.0.222:7002
   slots: (0 slots) slave
   replicates 6f76ed7df33775a9cb7c3ce12fd28a527f942ec1
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

14.測試集羣是否正常:在集羣中的任意一臺測試都可以,如我們可以在220上連接221上的7002節點並添加一個數據
[root@wintop-redies1 ~]# redis-cli -c -h 192.168.0.220 -p 7002
192.168.0.220:7002> set key001 xty_test
-> Redirected to slot [12657] located at 192.168.0.222:7001
OK
192.168.0.222:7001> get key001
"xty_test"
192.168.0.222:7001> 

15.再去221上連接7001節點和222上連接7001或者7002看是否可以查詢到數據
[root@wintop-redies2 ~]# redis-cli -c -h 192.168.0.221 -p 7001
192.168.0.221:7001> get key001
-> Redirected to slot [12657] located at 192.168.0.222:7001
"xty_test"
[root@wintop-redies3 ~]# redis-cli -c -h 192.168.0.222 -p 7002
192.168.0.222:7002> get key001
-> Redirected to slot [12657] located at 192.168.0.222:7001
"xty_test"

16.如果需要配置開機自啓動,添加如下兩行:(每臺機器都要配置),保存退出即可。以後開機就會自動啓動集羣
[root@localhost redis-5.0.7]# vim /etc/rc.local  
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7001/conf/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7002/conf/redis.conf
17.如果上面設置了,還是不能開機自啓動,則有可能是/etc/rc.d/rc.local沒有執行權限,需要給一個執行權限,如下:
[root@localhost redis-5.0.7]# chmod +x /etc/rc.d/rc.local

發佈了18 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章