redis單機及叢集部署
Redis安裝部署
1、Redis單機部署
1.1、安裝步驟
步驟1:
到Redis官網(https://redis.io/download)下載Redis,現在最新的版本為:4.0.2,將下載好的壓縮包上傳到伺服器當中。目錄如下:
步驟2:
解壓包,執行如下指令:
cd/mnt/redis/;
tar -zxvfredis-4.0.2.tar.gz;
步驟3:
安裝redis,執行如下指令:
cdredis-4.0.2;
make && make install;
步驟4:
檢驗安裝是否成功,執行如下執行:
maketest;
如果報如下錯誤:
則說tcl版本過低,需要升級,執行如下指令:
wgethttp://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz;
sudo tarxzvf tcl8.6.1-src.tar.gz -C /usr/local/;
cd /usr/local/tcl8.6.1/unix/;
sudo./configure;
sudo make;
sudo makeinstall;
步驟5:
啟動redis,執行如下指令:
cd/mnt/redis/redis-4.0.2/src/;
./redis-server&;
啟動成功介面如下圖:
2、Redis叢集部署
2.1、安裝部署
步驟1:
建立叢集目錄,執行如下指令:
cd /mnt;
mkdirredis-cluster;
cdredis-cluster/;
mkdir7000 7001 7002 7003 7004 7005;
說明:建立6個節點的Redis作為叢集,所以我們需要建立6個資料夾,分別存放6個節點的配置資訊,6個節點需要對應6個埠號,例如7000~7005,這個埠號我們自行定義。
步驟2:
將單機部署中安裝好的redis資料夾拷貝到redis-cluster,並授權,執行命令如下:
cp../redis/redis-4.0.2/ ./ -R;
chmod 755redis-4.0.2/ -R;
建立完成後的目錄如下圖:
步驟3:
配置redis.conf檔案,這個可以從redis安裝資料夾中拷貝,然後根據需要進行修改,也可以直接新建一個redis.conf檔案,把需要的配置寫進去。這裡我們採用自己新建一個redis.conf檔案的方式,在7000到7005資料夾分別建立redis.conf檔案,並將以下內容寫入到檔案中,注意不同redis節點的埠號不同,注意修改:
port 7000
cluster-enabledyes
cluster-config-filenodes.conf
cluster-node-timeout5000
appendonlyyes
步驟4:
分別將6個節點redis服務啟動起來,執行命令如下:
cd/mnt/redis-cluster/7000/;
../redis-4.0.2/src/redis-serverredis.conf &;
cd/mnt/redis-cluster/7001/;
../redis-4.0.2/src/redis-serverredis.conf &;
cd/mnt/redis-cluster/7002/;
../redis-4.0.2/src/redis-serverredis.conf &;
cd/mnt/redis-cluster/7003/;
../redis-4.0.2/src/redis-serverredis.conf &;
cd/mnt/redis-cluster/7004/;
../redis-4.0.2/src/redis-serverredis.conf &;
cd/mnt/redis-cluster/7005/;
../redis-4.0.2/src/redis-serverredis.conf &;
啟動成功介面如下:
說明:目前6個節點都已正常啟動,但相互之間還沒建立聯絡。
步驟5:
將6個節點聯絡起來,建立redis叢集環境,如果執行成功,則部署結束,不再執行後面的步驟,執行指令如下:
cd/mnt/redis-cluster/redis-4.0.2/src/;
./redis-trib.rbcreate --replicas 1 XXXX:7000 XXXX:7001 XXXX:7002 XXXX:7003XXXX:7004 XXXX:7005;
注意:XXXX為伺服器IP,本次部署機器IP為:172.31.3.159,所以XXXX應該配置為172.31.3.159。若此處配置為127.0.0.1,則用jedis客戶端遠端訪問redis叢集時,會出現訪問被拒絕的錯誤。
說明:1)如果執行成功,介面如下:
輸入yes:意思是服從這種主從分配方式,我們也可以通過配置檔案自己指定slave。執行完成後介面如下:
2)如果出現以下錯誤,則說明沒有ruby環境,需要安裝ruby環境,執行步驟6:
3)如果出現以下錯誤,說明缺少redis和ruby的介面,使用gem 安裝,執行步驟7:
步驟6:
安裝ruby環境,可以使用以下兩種方式安裝,推薦方式二:
方式一:使用yum安裝,執行如下指令:
yum install ruby
方式二:去ruby官網https://www.ruby-lang.org/en/downloads/下載穩定版本,本次安裝下載的是ruby-2.4.2版本,將下載好的軟體上傳到伺服器上,截圖如下:
上傳完成後,開始安裝ruby,執行指令如下:
cd /mnt/;
tar -zxvfruby-2.4.2.tar.gz;
cdruby-2.4.2;
./configure;
make&& make install;
說明:Ruby安裝完成後,繼續執行步驟5中指令。
步驟7:
安裝redis庫,執行如下指令:
geminstall redis
說明:1)如果執行成功,則出現以下介面:
2)如果出現以下錯誤,說明缺少zlib-devel,需要安裝zlib-devel,安裝說明見步驟8:
3)如果出現以下錯誤,說明缺少openssl,需要安裝openssl,安裝說明見步驟9:
步驟8:
安裝zlib-devel環境,可以使用以下兩種方式安裝,推薦方式二:
方式一:使用yum安裝,執行如下指令:
yum install zlib-devel
方式二:去zlib-devel官網https://pkgs.org/download/zlib-devel下載穩定版本,本次安裝下載的是zlib-devel-1.2.3-29.el6.x86_64.rpm版本,將下載好的軟體上傳到伺服器上,截圖如下:
上傳完成後,開始安裝zlib-devel,執行指令如下:
cd /mnt/;
rpm -ivhzlib-devel-1.2.3-29.el6.x86_64.rpm;
cd/mnt/ruby-2.4.2/ext/zlib/;
rubyextconf.rb ;
make;
makeinstall;
說明:1)如果執行成功,出現以下介面,則繼續執行步驟7中指令:
2)如果執行make過程中報如下錯誤:
則執行如下指令,執行完成後繼續執行make指令:
sed -i's#$(top_srcdir)/include/ruby.h#../../include/ruby.h#g' Makefile
步驟9:
安裝openssl環境,可以使用以下兩種方式安裝,推薦方式二:
方式一:使用yum安裝,執行如下指令:
yum install openssl
方式二:去openssl官網https://www.openssl.org/source/下載穩定版本,本次安裝下載的是openssl-1.1.0f.tar.gz版本,將下載好的軟體上傳到伺服器上,截圖如下:
上傳完成後,開始安裝openssl,執行指令如下:
cd /mnt/;
tar -xzvfopenssl-1.1.0f.tar.gz;
cd openssl-1.1.0f;
./config-fPIC --prefix=/usr/local/openssl enable-shared;
./config-t;
make&& make install;
cd/mnt/ruby-2.4.2/ext/openssl/;
rubyextconf.rb ;
make;
makeinstall;
說明:1)如果執行成功,出現以下介面,則繼續執行步驟7中指令:
2)如果執行ruby extconf.rb過程中出現如下介面,則說明沒有找到ssl.h,執行出錯:
執行如下指令替代ruby extconf.rb,執行成功後繼續執行後面的指令:
ruby extconf.rb--with-openssl-include=/usr/local/openssl/include/--with-openssl-lib=/usr/local/openssl/lib
3)如果執行make過程中報如下錯誤:
則執行如下指令,執行完成後繼續執行make指令:
sed -i's#$(top_srcdir)/include/ruby.h#../../include/ruby.h#g' Makefile
2.2、叢集測試
按照2.1中安裝步驟安裝完redis集群后,現對其進行測試:
1)檢視Redis叢集狀態,埠可以指定叢集中任意一個埠,執行如下指令:
cd /mnt/redis-cluster/redis-4.0.2/src/;
./redis-cli -p 7000 cluster nodes;
執行結果如下:
2)測試叢集中的資料插入及獲取,執行如下指令:
cd /mnt/redis-cluster/redis-4.0.2/src/;
./redis-cli -p 7001 -c;
說明:-h+host -p+埠號-c是要連線叢集,注意-c必須加,否則會報錯。埠可以指定叢集中任意一個埠。
測試結果如下: