centos下Redis5集羣搭建 version : redis-5.0.3 、linux:centos/redhat

最近由於QA環境部分資源被回收,需要自己重新搭建一個Redis集羣;去官網看了看,選了最新的Stable的Redis-5.0.3,Redis 5.0之後放棄 Ruby的集羣方式,改成使用C語言編寫的 redis-cli的方式,這使得集羣的構建方式複雜度降低許多, 特地記錄一下安裝過程;
https://redis.io/topics/cluster-tutorial Redis官網查看集羣搭建方式

1. 準備工作

  • 兩臺linux虛擬機(192.168.3.108192.168.3.109
  • redis官網下載redis-5.0.3.tar.gz (點擊下載),拷文件到/usr 目錄;
  • 執行yum install gcc(GNU Compiler Collection);
  • 執行yum install -y tcl(Tool Command Language);

2.編譯安裝

  • 執行 tar -zxvf redis-5.0.3.tar.gz解壓到/usr目錄下;
  • 進入redis-5.0.3目錄;
  • 執行make編譯;
  • 若出現如下提示,則說明未安裝gcc,gcc-4.4.7-4.el6.x86_64.rpm,使用命令安裝gcc:yum install gcc
 	/bin/sh: cc: command not found
 	make[1]: *** [adlist.o] Error 127
 	make[1]: Leaving directory `/usr/redis-5.0.3/src‘ 
	make: *** [all] Error 2
  • 若出現如下提示,則將執行make改爲執行make MALLOC=libc,可能是因爲編譯庫的問題;
	In file included from adlist.c:34:
	zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
 	zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
 	make[1]: *** [adlist.o] Error 1
 	make[1]: Leaving directory `/usr/redis-5.0.3/src‘
	make: *** [all] Error 2
  • 再執行make install執行成功後到此編譯安裝結束;

3、集羣搭建

  • 查看/usr目錄下有一個redis-5.0.3目錄,在/usr目錄下執行mkdir redis-5.0.3-cluster再建一個集羣目錄;
  • 在集羣目錄redis-5.0.3-cluster中新建3個文件夾700470057006 對應不同節點端口;
  • 將 redis-5.0.3目錄下的redis.conf文件分別拷貝到700470057006目錄中;
  • 修改三個端口目錄下redis.conf文件(端口號類推)

具體修改:
(1)port 7004 #綁定端口
(2)bind 192.168.3.108 #定IP也(也可以註釋掉,這樣任何客戶端都可以連接了)
(3)dir /usr/local/redis-5.0.3-cluster/7004 #指定文件存放路徑 ( .rdb .aof nodes-7004.conf)
(4)cluster-enabled yes #啓動集羣模式
(5)daemonize yes #後臺啓動
(6)cluster-node-timeout 15000 #指定集羣節點超時時間​
(7)appendonly yes #指定持久化方式
(8)protected-mode no #非保護模式

  • cd /usr 在/usr目錄下
  • 執行:
	local/bin/redis-server redis-5.0.3-cluster/7004/redis.conf 
	local/bin/redis-server redis-5.0.3-cluster/7005/redis.conf 
	local/bin/redis-server redis-5.0.3-cluster/7006/redis.conf

啓動這三個節點,可以執行ps -ef | grep redis 查看這三個節點運行pid,確保節點啓動正常。至此192.168.3.108三個節點安裝完成;

  • 在另一臺192.168.3.109重複上述操作,啓動三個節點700770087009
  • 至此兩臺機器,六個節點都正常啓動。

4、啓動集羣

  • 進入bin目錄
cd /usr/local/bin

-執行

redis-cli --cluster create 192.168.3.108:7004 192.168.3.108:7005 192.168.3.108:7006 192.168.3.109:7007 192.168.3.109:7008 192.168.3.109:7009 --cluster-replicas 1 
  • 啓動過程輸入yes,集羣應該啓動正常;
  • 可能出現異常 no route to host 這是系統防火牆沒關;
  • 可能應爲節點數量過少啓動失敗, --cluster-replicas 1的意思就是爲集羣中的每個主節點創建1個從節點,而集羣必須要3個或3個以上的主節點,所以這樣6個節點是最基本的,否則創建集羣就會失敗;這樣的配置只要有一個主節點掉線,整個集羣就無法提供服務了,因爲當主節點存活數低於總節點數的一半,集羣就無法提供服務;

5、熄燈

redis cluster中的每個節點都是平等的關係,每個節點都保存各自的數據和整個集羣的狀態。節點之間互相連接並保持活躍,這樣只要連接集羣中任意一個節點,就可以獲取到其他節點數據。
參考 : redis 5.0.3 講解、集羣搭建

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章