Centos7下安裝redis實戰(單機版以及叢集)

阿豪聊乾貨發表於2017-07-09

一、背景

  因專案需要,要引入redis做快取,就在centos7下親自安裝了一遍redis,剛好趁著這個機會就來把redis的概念以及單機版和叢集版redis安裝步驟記錄下來,在此和大家一起分享。

二、Redis介紹

1.什麼是Redis?

  Redis是用C語言開發的一個開源的高效能鍵值對(key-value)資料庫。它通過提供多種鍵值資料型別來適應不同場景下的儲存需求,目前為止Redis支援的鍵值資料型別有:字串型別、雜湊型別、列表型別、集合型別、有序集合型別。

2.Redis的應用場景:   

  快取(資料查詢、短連線、新聞內容、商品內容等等);(最多使用)
  分散式叢集架構中的session分離;
  聊天室的線上好友列表;
  任務佇列;(秒殺、搶購、12306等等)
  應用排行榜;
  網站訪問統計;
  資料過期處理(可以精確到毫秒).

三、安裝前準備

1.因為redis是C語言開發的,所以我們建議在linux上執行,故本文介紹在centos7上安裝redis.

2.安裝redis需要先將官網下載的原始碼進行編譯,編譯依賴gcc環境,如果沒有gcc環境,需要安裝gcc,命令如下:

  yum -y install gcc-c++

四、安裝單機版redis

  1.從官方網站下載對應的redis原始碼包,命令如下:

    wget http://download.redis.io/releases/redis-3.0.0.tar.gz

  2.對原始碼檔案的壓縮包進行解壓縮,命令如下:

    tar -zxvf redis-3.0.0.tar.gz

  3.進入到解壓後的原始碼資料夾,並對原始碼進行編譯,命令如下:    

    cd redis-3.0.0.tar.gz && make

  4.安裝編譯完成後的檔案(prefix引數用來指定redis的安裝位置,一般建議安裝在/usr/local/redis下)

    make install PREFIX=/usr/local/redis

  5.把/usr/local/redis/bin資料夾下所有檔案移動到/usr/local/redis資料夾下,並刪除/usr/local/redis/bin資料夾

    mv /usr/local/redis/bin/* /usr/local/redis/ && rm -rf /usr/local/redis/bin

  6.安裝完成,啟動單機版redis

    1).控制檯直接啟動:cd /usr/local/redis && ./redis-server

    2).後臺啟動:

      I.複製原始碼包下的redis.conf到redis的安裝目錄.

      II.修改redis.conf,將其中daemonize no項修改daemonize yes

      III.後臺啟動:cd /usr/local/redis && ./redis-server redis.conf

  7.啟動並測試客戶端

    redis-cli -p 埠(預設6379) -h 主機ip(預設localhost即127.0.0.1)

五、安裝redis叢集

  1.redis-cluster叢集架構圖

  

架構細節:

(1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進位制協議優化傳輸速度和頻寬.

(2)節點的fail是通過叢集中超過半數的節點檢測失效時才生效.

(3)客戶端與redis節點直連,不需要中間proxy.客戶端不需要連線叢集所有節點,連線叢集中任何一個可用節點即可

(4)redis-cluster把所有的物理節點對映到[0-16383]slot,cluster 負責維護node<->slot<->value

  Redis 叢集中內建了 16384 個雜湊槽,當需要在 Redis 叢集中放置一個 key-value 時,redis 先對 key 使用 crc16 演算法算出一個結果,然後把結果對 16384 求餘數,這樣每個 key 都會對應一個編號在 0-16383 之間的雜湊槽,redis 會根據節點數量大致均等的將雜湊槽對映到不同的節點。

  2.建立叢集:(說明:由於機器有限,我們先使用一臺linux伺服器來建立6個redis例項從而建立一個偽叢集)

  第一步:在/usr/local資料夾下建立redis-cluster資料夾作為redis叢集根目錄

    cd /usr/local && mkdir redis-cluster

  第二步:在redis-cluster資料夾下安裝6個redis例項,安裝步驟同單機版安裝步驟。

  第三步:分別編輯每個例項的redis.conf檔案指定埠為7001到7006,並開啟每一個配置檔案中cluster-enable yes前面的註釋(即去掉'#'號)。

  第四步:拷貝redis原始碼資料夾下的名為redis-trib.rb的ruby指令碼檔案到redis-cluster資料夾下

    cp redis-trib.rb /usr/local/redis-cluster/

  第五步:執行該ruby指令碼前,在系統中安裝ruby環境

    1).yum -y install ruby

    2).yum -y install rubygems

  第六步:安裝執行ruby指令碼redis-trib.rb執行所依賴的gem包:redis-3.0.0.gem

    gem install redis-3.0.0.gem

  第七步:啟動所有的redis例項

    ./redis-server redis.conf

  第八步:使用redis-trib.rb建立叢集(如果是在不同的機器上安裝例項,只需要在任意一臺機器上執行以下命令即可)

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

  出現以下介面,證明redis叢集安裝成功。

  

  第九步:進入任意一臺例項安裝位置,可以使用以下命令來進行連線叢集:

  ./redis-cli -p 7001 -c(-c說明是連線叢集,單機的時候不需要加該引數)

  到此,我們就完成了redis的單機 以及叢集版的安裝和測試。

三、總結

  通過這次redis安裝的經歷,讓我感覺到遠處看安裝叢集什麼的很困難,其實自己操作起來,感覺沒有什麼困難的,只要記住步驟就好了。所以不能給自己設限,什麼事情都要保持一顆想要嘗試的心。

相關文章