一、背景
因項目需要,要引入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安裝的經歷,讓我感覺到遠處看安裝集群什么的很困難,其實自己操作起來,感覺沒有什么困難的,只要記住步驟就好了。所以不能給自己設限,什么事情都要保持一顆想要嘗試的心。