Step0:redis集群組件需求
Step1:離線安裝ruby
Step2:離線安裝rubygems
Step3:安裝rubygems的 redis api
Step4:離線安裝tcl 8.6
Step5:離線安裝redis
Step6:啟動redis守護進程及配置主從復制
Step7:測試redis集群
Step0:redis集群需要安裝如下組件:
ruby
rubygems
redis.gem
tcl
redis
----------------------------------------------------------------------------------
Step1:離線安裝ruby
1:上傳ruby-2.3.1.tar.gz至服務器;
2:tar -xzvf ruby-2.3.1.tar.gz;
3:cd ruby-2.3.1
4:./configure --prefix='/opt/ruby'
5:make
6:make install
安裝完畢后添加ruby至系統環境變量:
7:vim /etc/profile
在最末尾添加如下:
PATH=$PATH:/opt/ruby/bin
export PATH
保存退出
8:source /etc/profile
至此ruby安裝結束,通過ruby -v可查看當前系統安裝ruby的版本
-------------------------------------------------------------------------------------------------------------
Step2:離線安裝rubygems
1:下載rubygems安裝包(需翻牆),此處以rubygems-2.6.4.tgz為例;
2:tar -xzvf rubygems-2.6.4.tgz;
3:cd rubygems-2.6.4;
4:ruby setup.rb,將會將rubygems安裝至上一步ruby的安裝目錄的lib目錄下;
5:配置rubygems環境變量
vim /etc/profile
在剛才的$PATH變量后加上:/root/redis/rubygems-2.6.4/bin(這里的路徑是解壓文件路徑下的bin目錄路徑)
6:source /etc/profile
至此rubygems安裝完畢,echo $PATH應該輸出當前rubygems的版本號:2.6.4
------------------------------------------------------------------------------------------------
Step3:安裝rubygems的 redis api
1:下載redis-3.3.0.gem
2:gem install -l redis-3.3.0.gem
3:安裝完畢,提示"1 gem installed"
---------------------------------------------------------------------------------------------------
Step4:離線安裝tcl 8.6
1:下載tcl8.6.0,以下以tcl8.6.0-src.tar.gz文件為例;
2:tar -xzvf tcl8.6.0-src.tar.gz;
3:cd tcl8.6.0/unix;
4:./configure /opt/tcl;
5:make;
6:make install && make install-private-headers && ln -v -sf tclsh8.6 /opt/tcl/bin/tclsh && chmod -v 755 /opt/tcl/lib/libtcl8.6.so
以上安裝完畢后,修改環境變量
7:vim /etc/profile
8:在$PATH后加入":/opt/tcl/bin";
9:source /etc/profile;
配置完畢后,輸入tclsh,應該可以進入tcl編譯環境
----------------------------------------------------------------------------------------------------------------------------
Step5:離線安裝redis
1:下載redis源碼安裝包,以下以redis-3.2.0.tar.gz為例;
2:tar -xzvf redis-3.2.0.tar.gz;
3:cd redis-3.2.0/src;
4:make 這里如果不指定PREFIX,默認將安裝在/usr/local/bin下,保持默認就好;
5:make && make install;
如果需要test,則make test依賴於tclsh環境;
安裝完成后,將在/usr/local/bin下生成redis的對應服務端、客戶端等文件。
---------------------------------------------------------------------------------------------------------------------------
Step6:啟動redis守護進程及配置主從復制
注:redis自治集群功能是從V3后加入的,這里我們用簡單的主從復制就能滿足需求
1:修改master配置文件redis.conf
daemonize yes
pidfile /var/run/redis_16000.pid # 如果是實驗環境,在同一台主機部署集群,則需要監聽不同端口,對應pid文件也需要修改
bind 10.200.50.198 # 這里改為服務器IP即可
port 16000 #這里是監聽端口,默認6379,如果是多節點部署集群可以不變
2:修改slave配置文件redis.conf
daemonize yes
pidfile /var/run/redis_16001.pid # 如果是實驗環境,在同一台主機部署集群,則需要監聽不同端口,對應pid文件也需要修改
bind 10.200.50.198 # 這里改為服務器IP即可
port 16001 #這里是監聽端口,默認6379,如果是多節點部署集群可以不變
slaveof 10.200.50.198 16000
另外一個slave節點配置文件類似,將16001改為16002即可;
3:從centos7開始,服務注冊通過systemd來進行,可以通過在/usr/lib/systemd/中創建服務文件,通過systemctl來管理服務
這個目錄又分為system目錄和user目錄,由於我們需要在服務器啟動以后就啟動redis集群,因此我們在system目錄下定義對應的redis服務,在測試環境中,集群涉及的三個節點,分別對應3個服務:redis_16000.service,redis_16001.service,redis_16002.service。
服務內容如下:
[Unit]
Description=redis-server on 16000
After=syslog.target
After=network.target
[Service]
Type=forking
#PIDFile=/var/run/redis_16000.pid
ExecStart=/usr/local/bin/redis-server /usr/local/bin/16000/redis.conf
ExecStop=/usr/local/bin/redis-cli -h 10.200.50.198 -p 16000 shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
三個服務文件類似,修改16000對應為16001及16002即可,注意reidis-server后是服務啟動的配置文件,改為前2步所創建的對應的每個服務的配置文件絕對路徑即可;
4:配置文件,服務文件均創建完畢后,通過systemd即可管理這個節點上的三個redis服務
通過
systemctl enable redis_1600X.service
systemctl start redis_1600X.service啟動整個集群,即可自動組件一個1主2從的redis集群。
----------------------------------------------------------------------------------------------------------------------
Step7:測試redis集群
寫:redis-cli -h 10.200.50.198 -p 16000
set key01 'hello world'
讀:redis-cli -h 10.200.50.198 -p 16001
get key01
'hello world'
注:配置文件中默認配置slave節點是只讀模式,因此做寫操作只能針對master節點,讀操作可以在slave節點進行。
---------------------------------------------------------------------------------------------------------------------------------------------
離線安裝涉及的組件安裝包:
redis源碼包:redis-3.2.0.tar.gz
ruby源碼包:ruby-2.3.1.tar.gz
rubygems源碼包:rubygems-2.6.4.tgz
redis gem api:redis-3.3.0.gem
tcl編譯器源碼包:tcl8.6.0-src.tar.gz (可選,如不需要redis的make test則可不安裝)