1. 程式人生 > >Linux 安裝redis 叢集

Linux 安裝redis 叢集

Linux環境安裝redis叢集

[TOC]

安裝環境

系統:CentOS release 6.5 (Final)

環境要求:

​ gcc;

​ Ruby:

​ Rubygems:

​ redis-3.X (需要3.0以上版本支援叢集)

注意:我測試時連線外網了,如果沒有連線外網就需要離線下載所需的依賴,然後上傳安裝

安裝單個redis

注意:這裡需要gcc和ruby的環境。安裝前需要檢查系統是否有gcc和ruby的環境:

  • gcc環境

    gcc用來編譯redis的原始碼,使用gcc -v 檢視,

  • ruby 環境

    ruby 用來執行叢集的命名,使用ruby -v,gem -v 檢視:

安裝好上述兩個依賴後,現在安裝redis.

  1. 建立存放安裝包的資料夾,makdir redis。然後cd到該目錄,上傳下載好的tar.gz檔案。然後,執行解壓命令
tar zxvf redis-3.2.12.tar.gz 

  1. cd到redis的解壓目錄,然後執行make && make install 命令安裝:

    $ cd /home/redis/redis-3.2.12
    $ make && make install  //make 這裡如果不指定PREFIX,預設將安裝在/usr/local/bin下,保持預設就好
    

安裝成功後,出現如下圖:

也可以在/usr/local/bin下檢視redis的安裝檔案。

  1. cd到解壓目錄,指定配置檔案啟動。

    redis-server redis.conf
    

注意,這裡啟動的redis不是後臺啟動,退出會話後redis會自動退出。通常單機redis我們需要修改如下配置:

 daemonize yes  //預設不是以守護程序的方式執行,可以通過該配置項修改,使用yes啟用守護程序
 requirepass foobared   //設定客戶端連線密碼
 port 6379  //指定埠
 bind 127.0.0.1  //繫結的主機地址,如果需要遠端連線,則需修改該引數
 protected-mode  yes // 保護模式,如果需要遠端連線,則需要修改該引數
 

安裝Redis叢集

安裝叢集至少需要三個主節點,三個對應的從節點。防止某個節點掛掉,其他兩個節點可以推舉其對應得從節點為主節點,一定程度的容錯。

這裡在同一臺機器上安裝,生產環境至少需要三臺機器安裝。建立6個檔案分別存放配置資訊,資料夾名以埠命名。比如7001-7006。

  1. 使用mkdir命令批量建立資料夾。

  1. 然後我們需要在安裝目錄複製redis-cli、redis-server、redis.conf 三個配置檔案到每個資料夾,用來啟動單個redis. 如果安裝時沒有指定目錄,則預設在usr/local/bin 目錄下複製redis-cli、redis-server檔案,redis.conf在解壓的目錄可以複製,也可以自己建立。

在複製redis.conf配置檔案

  1. 修改每個redis.conf檔案
bind 0.0.0.0   //0.0.0.0表示允許所有連線
protected-mode no //保護模式,yes表示不允許遠端連線
port 7001  //埠,這裡每個配置檔案不同
daemonize yes  //以後臺方式啟動
appendonly yes   //redis 將每一次寫操作請求都追加到appendonly.aof 檔案中redis重新啟動時,會從							該檔案恢復出之前的狀態。
cluster-enabled yes  //啟用叢集
cluster-node-timeout 5000  //節點超時時間
  1. 在每個檔案下執行redis-server redis.conf 命令。這個可以建立指令碼執行比較快。
vim startall.sh 就會開啟vim編輯器,建立一個空的文字

這裡我每個分別啟動,指令碼執行不起作用(心累)

  1. 此時,我們進入解壓的目錄src下,複製redis-trib.rb 檔案到redis目錄;

  2. 在redis目錄執行命令:

    注意:這裡--replicas 1 表示每個主資料庫擁有從資料庫個數為1。master節點不能少於3個。

    如果需要遠端訪問,這裡的命令中127.0.0.1 需要換成伺服器的ip地址。否則不能遠端訪問。

    ./redis-trib.rb  create --replicas  1  127.0.0.1:7001  127.0.0.1:7002  127.0.0.1:7003  127.0.0.1:7004  127.0.0.1:7005  127.0.0.1:7006
    

各種報錯解決

執行./redis-trib.rb create --replicas 命令後報錯:

然後,ruby-v 和gem -v 檢視ruby環境發現都已經安裝了。其實這個錯誤是缺少redis對ruby的介面,我們需要下載redis的gem包;

執行命令:gem install redis 有報錯了。

ruby版本太低了。。。。

執行如下命令安裝rvm,用他來安裝ruby更新的版本:

//具體RVM安裝命令地址:http://rvm.io/
  [root@linux ~]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB 

  [root@linux ~]# curl -sSL https://get.rvm.io | bash -s stable

  [root@linux ~]# find / -name rvm -print
  [root@linux ~]# source /usr/local/rvm/scripts/rvm

安裝好rvm,就可以看到很多rvm的檔案。


設定預設的ruby版本


在執行gem install redis,就會安裝成功了。

gem install redis

接下來執行命令安裝叢集:

./redis-trib.rb  create --replicas  1  127.0.0.1:7001  127.0.0.1:7002  127.0.0.1:7003  127.0.0.1:7004  127.0.0.1:7005  127.0.0.1:7006

輸入yes,回車。

終於成功了,顯示顯示的主從節點資訊。

叢集測試

切換到任意的節點目錄下,連線新增資料測試:

 redis-cli -p 7001  -c

這裡就可以看到set name 叢集已經hash了key分佈在哪個槽上,自動跳轉到對應的節點上。