1. 程式人生 > >redis搭建集群並用TreeSoft管理

redis搭建集群並用TreeSoft管理

客戶端 idt 不可用 lan 保持 添加 開發 定向 原因

前言:redis作為一款高效的NOSQL數據庫已經深入貫徹和落實到我們的日常開發代碼中,作為緩存、時間控制、數據倉庫、隊列等使用方法層出不窮,簡直是開寫代碼、居家旅行之必備良藥。曾經,我們的項目都是單體的,直到後來逐漸演變為微服務—— 一個將我們的工程解耦成多個工程的體系。然後隨著我們項目的訪問量越來越高,後臺的吞吐量也越來越大。如果我們還采用的單體redis,性能很容易形成瓶頸。如何突破單體redis帶來的功能受限?如何突破性能帶來的問題?這時我們就可以考慮橫向擴展,搭建redis集群。正所謂:眾人拾柴火焰高,原來一顆小火柴不足以照亮整個房子,一旦人多了,火柴多了,那麽散發出來的火焰就會更亮、更熱,集群其實就是這個道理,更多的服務器參與工作就會擺脫單體應用帶來的性能上的局限。本篇博客就來從零開始搭建一個redis集群。註:本篇博客搭建的redis集群采用的linux服務器是centos6.5,redis版本是4.0.6,因為沒有多臺服務器,所以采用的是一臺服務器模擬安裝多個redis節點的方式搭建服務器;

本篇博客的目錄

一:準備

二:搭建redis集群

三:使用Treesoft管理

四:總結

正文

一:準備

1.1:安裝單體redis

首先下載redis的安裝包,然後解壓、 編譯,依次執行以下指令:


[root@host /]# mkdir /usr/software/ 
[root@host software]# wget http://download.redis.io/releases/redis-4.0.6.tar.gz 
[root@host software]# tar -xzvf redis-4.0.6.tar.gz
[root@host software]#  cd redis-4.0.6/
[root@host redis-4.0.6]# make && 
install

簡單解釋一下以上命令,首先創建一個redis的目錄,然後下載redis4.0.6版本,再解壓,然後編譯安裝,安裝完之後的樣子大概如下:

技術分享圖片

redis默認是非守護模式,也就是無法在後臺運行,我們需要把其默認的屬性給修改了,依次執行以下命令:


[root@host redis-4.0.6]# vi /usr/software/redis-4.0.6/redis.conf  no-->yes

上面的命令是用vi修改redis的配置文件中的守護模式,將其由關閉模式改為開啟,開啟以後我們就可以在後臺運行redis了

技術分享圖片

在後臺啟動運行redis

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

成功啟動redis的會出現以下畫面:

技術分享圖片

然後我們再以客戶端方式運行:redis-cli

技術分享圖片

可以看到redis已經在運行了,並且我們做了一個簡單的測試set一個name值,然後再get這個name值。可以看到程序正常運行。

二:搭建redis集群

2.1:復制配置文件到多個redis

之前有提到我們的服務器資源有限,所以將采用的是一臺服務器安裝多個redis節點的方式。再具體到安裝過程,那就是采用多配置文件的方式,將每個配置文件配置成不同的端口號和目錄等,然後依次啟動,使用redis-trib來管理這個集群。

首先我們需要先創建一個redis集群文件夾,起名redis-cluster,然後準備6個節點,復制配置文件到這個文件夾裏面:

[root@host software]# mkdir redis-cluster
[root@host redis-cluster]# mkdir 6001
[root@host redis-cluster]# mkdir 6002
[root@host redis-cluster]# mkdir 6003
[root@host redis-cluster]# mkdir 6004
[root@host redis-cluster]# mkdir 6005
[root@host redis-cluster]# mkdir 6006

[root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6001/
[root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6002/
[root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6003/
[root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6004/
[root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6005/
[root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6006/

以上命令是建立了6個節點,然後將單體的redis節點的配置文件復制到每個節點中,接下來我們就要用這些配置文件來配置集群了

2.2:修改配置文件

以下是最小的Redis群集配置文件,根據此我們需要修改每個配置文件中的這些屬性:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

依次執行命令,修改每個配置文件

[root@host 6001]# vi redis.conf 

①修改端口號,這裏和我們配置的端口號保持一致:

技術分享圖片

②修改appendonly為yes

技術分享圖片

③開啟cluster-enabled 為yes,即為開啟集群模式

技術分享圖片

④修改集群節點為當前配置文件的conf文件

技術分享圖片

⑤:修改超時時間為5000ms,原來為15000.

技術分享圖片

(用vi修改完記得用切記vi命令保存:wq!)

2.3:配置多個redis

按照2.2中給出的步驟,依次配置6個節點,註意節點、conf每個配置的不同

2.4:安裝ruby

因為redis的集群管理工具需要用到ruby,接下來我們需要安裝ruby依賴庫:

這裏我們不采用yum安裝,因為yum安裝的ruby默認版本號是1.9。而redis的集群管理工具trib的最小ruby版本號要求是2.2.2.(版本低於2.2.2會無法啟動)所以我們采用手動的方式安裝ruby

依次執行一下命令

[root@host software]# mkdir ruby
[root@host ruby]# wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz
[root@host ruby]# tar xf ruby-2.2.2.tar.gz
[root@host ruby-2.2.2]# cd ruby-2.2.2 
[root@host ruby-2.2.2]#./configure --prefix=/usr/local/ruby-2.2.2
[root@host ruby-2.2.2]# make && make install

然後查看ruby版本號。如果出現的是2.2.2就表示成功了

技術分享圖片

2.5:安裝gem redis

[root@host ~]# yum install rubygems
[root@host ruby]# gem install redis

2.6使用redis-trib啟動集群

2.6.1 依次啟動redis節點

[root@host src]#   cd /usr/software/redis-4.0.6/src
[root@host src]#   ./redis-server  /usr/software/redis-cluster/6001/redis.conf

[root@host src]#   ./redis-server  /usr/software/redis-cluster/6002/redis.conf

[root@host src]#   ./redis-server  /usr/software/redis-cluster/6003/redis.conf

[root@host src]#  ./redis-server  /usr/software/redis-cluster/6004/redis.conf

[root@host src]#  ./redis-server  /usr/software/redis-cluster/6005/redis.conf

[root@host src]#   ./redis-server  /usr/software/redis-cluster/6006/redis.conf

2.6.2:搭建redis集群

[root@host src]#  /usr/software/redis-4.0.6/src/redis-trib.rb create --replicas 1   127.0.0.1:6001 127.0.0.1:6002  127.0.0.1:6003  127.0.0.1:6004  127.0.0.1:6005  127.0.0.1:6006

三:安裝TreeSoft界面化管理工具

3.1:測試redis集群

首先我們用redis客戶端啟動一個節點,可以看出redis將值重定向到節點6002上面去了

[root@host src]# ./redis-cli -c -h 127.0.0.1 -p 6001

技術分享圖片

關於redis的集群分片問題:

技術分享圖片

這段描述表示了redis的集群是如何工作的,通過將節點進行劃分不同的hash槽來實現數據的存儲,每次當進行set值的時候,redis集群會對鍵進行crc16的算法校驗,然後再取模,這樣可以保證鍵可以落在16384範圍中的某一個點上。然後再取不同的範圍,定位到具體的節點上,這種結構的伸縮興比較好,會避免刪除或者增加節點的時候導致集群不可用。

3.2:安裝treeSoft

3.2.1:簡介 treesoft是redis的一個界面化管理工具,可以通過它來查看redis的key和vlaue的集合,進行簡單配置就可以,界面簡單操作方便,因此我們來安裝一下treeSoft:

首先必須得安裝tomcat(7.0+)、jdk(1.7+),然後下載treesoft,下載地址:http://www.treesoft.cn/dms.html。

下載之後解壓,然後將treenms放入到tomcat到webapps目錄下,再啟動tomcat,我的目錄是:/usr/software/tomcat/apache-tomcat-7.0.92/webapps/treenms

就可以運行了

註:因為篇幅原因,本篇博客不介紹安裝tomcat、jdk的詳細教程,不會的同學可以自行google

3.2.2:treesoft管理

啟動tomcat,然後訪問treesoft

技術分享圖片

訪問地址:http://176.122.132.220:8070/treenms/treesoft/index,就可以看到下面的界面了,並且可以對鍵進行添加、刪除、修改工作、刷新等操作,很方便。只需要在右上角進行簡單的配置就可以了

技術分享圖片

可以看到界面幹凈清爽,可以隨意切換集群中的節點(6001、6002等)

四:總結

本篇博客講述了redis如何搭建集群,以及redis集群的基本運行原理,還有後來的使用treesoft進行管理集群,redis是我們在編程開發中不可或缺的一個中間件,如何使用好它、管理好它、最大化它的性能都是我們需要探索的問題。而這些的第一步就是我們先親自手動去搭建這樣一個集群,並了解它的基本運行機制,在以後的編程工作中,才能更高的發揮它的優點。

redis搭建集群並用TreeSoft管理