centos7安裝redis-4.0.1集群


試驗機操作系統:CentOS Linux release 7.2.1511 (Core)

本文的目的是教會大家快速搭建redis集群,完了再深入學習。

試問如果不上手試驗,看的資料再多有個毛用?

下載redis

下載網址:https://redis.io/download

寫文章時最新版本為:redis-4.0.1.tar.gz

可以先下載到windows操作系統,然后拷貝到centos。

下載成功后,在centos上創建一個目錄,存放我們的軟件,我比較喜歡放在/soft目錄下。

[root@localhost /]# mkdir /soft

然后利用WinScp工具拷貝到centos系統,放在/soft/目錄下。

安裝gcc

[root@localhost ~]# yum install gcc

中間有2次提示,要求輸入:yes 或 y,我們按照提示來就可以。

安裝pstree

[root@localhost ~]# yum install psmisc

中間有1次提示,要求輸入:y。按照提示來就可以。

解壓tar包

[root@localhost /]# cd /soft

[root@localhost soft]# tar zxvf redis-4.0.1.tar.gz

[root@localhost soft]# mv redis-4.0.1 /usr/local/redis

編譯安裝

[root@localhost soft]# cd /usr/local/redis

[root@localhost redis]# make MALLOC=libc

[root@localhost redis]# make & make install

說明:如果在make的時候不指定內存管理方式,會報錯的:

zmalloc.h:50:31: 致命錯誤:jemalloc/jemalloc.h:沒有那個文件或目錄。

malloc是管理內存碎片的。

啟動reids

[root@localhost redis]# src/redis-server redis.conf

如果成功,如下圖:

然后新開終端,打開redis客戶端

[root@localhost ~]# cd /usr/local/redis/

[root@localhost redis]# src/redis-cli

表示已經啟動成功。

我相信單機安裝有點linux基礎的同學都能安裝成功。

-------------------------------------------------------------------------------

Redis集群

redis集群要求最小3主3從。我這里跟其它介紹的不一樣,我是模擬的真機環境。

准備6台centos7服務器,其中192.168.1.80我們剛剛裝了redis,並啟動成功。

因為redis集群還需要安裝ruby,還需要配置集群,所以我的想法是先在一台機器上安裝好之后,我們再拷貝整個系統到其它5台機器。這樣我們做的重復工作就比較少了。

192.168.1.80

192.168.1.81

192.168.1.82

192.168.1.83

192.168.1.84

192.168.1.85

安裝ruby

在剛安裝好的redis服務器上安裝ruby

因為創建集群時需要用Ruby 運行redis-trib.rb

[root@localhost redis]# yum -y install ruby ruby-devel rubygems rpm-build

[root@localhost redis]# gem install redis

這條命令有點慢,稍等片刻即可安裝成功,如下圖:

修改redis.conf

打開redis.conf,把下面列出來的配置項全部注釋,完了拷貝下面7條配置到redis.conf文件末尾

port 6379

bind 192.168.1.80

daemonize yes

cluster-enabled yes

cluster-config-file nodes-6379.conf

cluster-node-timeout 15000

pidfile /var/run/redis_6379.pid

克隆5台系統

克隆5台操作系統,並且每台系統的redis.conf中的bind修改成對應的IP

我用的虛擬機,克隆前先關掉虛擬機,即192.168.1.80。不然無法克隆。

打開相關端口

說明:

redis集群不僅需要開通redis客戶端連接的端口,而且需要開通集群總線端口

集群總線端口為redis客戶端連接的端口 + 10000

如redis端口為6379,則集群總線端口為16379

所以,所有服務器需要開通redis的客戶端連接端口和集群總線端口

每台都要開啟這兩個端口

 

開啟6379端口和16379端口

[root@localhost ~]# firewall-cmd --zone=public --add-port=6379/tcp --permanent

[root@localhost ~]# firewall-cmd --zone=public --add-port=16379/tcp --permanent

重啟防火牆

[root@localhost ~]# firewall-cmd --reload

啟動redis

每台都要啟動

[root@localhost ~]# cd /usr/local/redis/

[root@localhost redis]# src/redis-server redis.conf

啟動集群

[root@localhost ~]# /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.1.80:6379 192.168.1.81:6379 192.168.1.82:6379 192.168.1.83:6379 192.168.1.84:6379 192.168.1.85:6379

如下圖,表示成功啟動

仔細看這張圖,其中

192.168.1.80

192.168.1.81

192.168.1.82

三台節點自動設置成了主節點

192.168.1.83

192.168.1.84

192.168.1.85

三台節點自動設置成了從節點,而且每個從節點對應哪個主節點都有說明。

連接redis集群 

在192.168.1.80機器上進行連接

[root@localhost redis]# src/redis-cli -h 192.168.1.80 -c -p 6379

必須要加:-c參數

在192.168.1.80節點上寫一條數據,看圖:

然后Ctrl+c退出redis客戶端,再連接到192.168.1.83節點上進行查詢

[root@localhost redis]# src/redis-cli -h 192.168.1.83 -c -p 6379

看圖:

看到沒,跳轉到192.168.1.80上了,從192.168.1.80獲取的數據

好了,成功了,累死寶寶了。

參考網址

https://redis.io/download

http://os.51cto.com/art/201702/533052.htm?pc

如果重啟服務器后,再次執行redis-trib.rb會報錯如下錯誤:

[ERR] Node 192.168.1.80:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

解決方法:

刪除dump.rdb和nodes-6379.conf這兩個文件,然后重啟redis服務,最后啟動集群。

1次不行搞2次,2次不行搞3次。多刪除幾次。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM