cd /usr/local/ mkdir redis 將redis放到redis目錄下 tar -vxf redis-4.0.7.tar.gz make
若是報錯:
node
說明系統沒有安裝gcc的環境,沒法進行編譯。redis
mount /dev/cdrom /mnt cd /mnt/Packages (有的不在Packages目錄下,這個目錄下都是rpm包) rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm
安裝gcc以前須要安裝其餘的依賴,按照提示的依賴從上到下安裝:shell
rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm cpp-4.8.5-4.el7.x86_64.rpm glibc-devel-2.17-105.el7.x86_64.rpm libmpc-1.0.1-3.el7.x86_64.rpm glibc-headers-2.17-105.el7.x86_64.rpm kernel-headers-3.10.0-327.el7.x86_64.rpm
解決辦法:make 後面帶參數vim
make MALLOC=libc make install cd src ./redis-server
看到這個界面redis單機版啓動成功,驗證:
另外打開一個鏈接,到根目錄下執行centos
./redis-cli ping
若是有響應,則redis單機版本安裝成功。
ruby
在redis安裝目錄下建立redis_cluster目錄:app
mkdir redis_cluster 在redis_cluster中建立子目錄: cd redis_cluster/ mkdir 7000 mkdir 7001 mkdir 7002
將redis.conf拷貝到這三個目錄中去:(redis.conf在安裝目錄下)工具
cp redis.conf ./redis_cluster/7000 cp redis.conf ./redis_cluster/7001 cp redis.conf ./redis_cluster/7002
修改每一個redis.conf的配置,須要修改的內容以下:測試
port 7000 //配置集羣的端口,分別是7000、700一、7002 bind 本機的IP //這裏的默認配置是127.0.0.1改成內網ip。 daemonsize yes //容許redis在後臺運行 pidfile /var/run/redis_7000.pid //改爲和端口一致 cluster-enabled yes // 開啓集羣 把註釋去掉 cluster-config-file node_7000.conf //集羣的配置,和端口一致 cluster-node-timeout 15000 // 請求超時,默認爲15秒 appendonly yes // aof日誌開啓,有須要就開啓,每一次寫操做都會記錄一條日誌。
修改完成以後啓動服務:centos7
cd src/ ./redis-server ../redis_cluster/7000/redis.conf
依次啓動全部節點:
查看啓動狀況:
另外一臺機器的redis端口分配爲:700三、700四、7005,而後修改對應的主機ip。
mkdir /usr/local/ruby cd ruby/ 把包放到改目錄下 tar -vxf ruby-2.5.0.tar.gz cd ruby-2.5.0/ ./configure make && make install
驗證:
ruby -v
cd /usr/local mkdir rubygems 把文件放到該目錄下 tar -vzxf rubygems-2.7.4.tgz cd rubygems-2.7.4/ ruby setup.rb
報錯:
解決辦法:缺乏了zlib包,須要下載並安裝zlib
cd /usr/local mkdir zlib tar -vxf zlib-1.2.11.tar.gz cd zlib-1.2.11/ ./configure --prefix=/usr/local/zlib make make install
cd /usr/local/ruby-2.5.0/ext/zlib/ ruby extconf.rb --with-zlib-include=/usr/local/zlib/include/ --with-zlib-lib=/usr/local/zlib/lib make
又報錯:
解決辦法:執行完extconf.rb以後會生成一個Makefile vim Makefile
把$(top_srcdir) 換成 ../../
而後再make
make
make install
錯誤都解決以後,回到安裝rubygems的步驟。
進入rubygems的安裝目錄,執行ruby setup.rb
cd /usr/local/rubygems/rubygems-2.7.4 ruby setup.rb
安裝成功:
剛剛安裝rubygems就是爲了安裝這個插件。
把文件放到 /usr/local/redis 目錄下。
gem install redis-3.2.2.gem
又報錯:
解決辦法:缺乏OpenSSL,下載安裝。
這個問題和zlib的解決方案相似,可類比解決。
cd /usr/local mkdir openssl tar -xvf openssl-1.0.2n.tar.gz ./config -fPIC --prefix=/usr/local/openssl enable-shared ./config -t make && make install
安裝成功:
cd /usr/local/ruby/ruby-2.5.0/ext/openssl/ ruby extconf.rb --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib make
報錯:
解決辦法:vim Makefile 把全部的 $(top_srcdir) 換成 ../.. 注意替換全部
make && make install
安裝成功:
而後回到安裝 redis-3.2.2.gem ,在redis目錄下安裝。
gem install redis-3.2.2.gem
安裝成功:
cd /usr/local/redis/redis-4.0.7/src ./redis-trib.rb create --replicas 1 192.168.80.230:7000 192.168.80.230:7001 192.168.80.230:7002 192.168.80.231:7003 192.168.80.231:7004 192.168.80.231:7005
啓動成功:
而後測試一下集羣:
隨便鏈接一個節點:
./redis-cli -h 192.168.80.231 -p 7005 -c 鏈接成功以後: set test1 'test001'
而後再鏈接另一個節點:
./redis-cli -h 192.168.80.230 -p 7002 -c get test1
可使用可視化工具查看和管理redis集羣。
./redis-trib.rb create --replicas 1 192.168.80.230:7000 192.168.80.230:7001 192.168.80.230:7002 192.168.80.231:7003 192.168.80.231:7004 192.168.80.231:7005
cd /usr/local/redis/redis-4.0.7/src ./redis-cli -p 7003 -c -h 192.168.80.231
參數說明: -p port 端口 -h host 主機 -c cluster 集羣
鏈接進集羣以後 輸入ping , 若是響應了pong 表示鏈接集羣成功:
鏈接進集羣以後能夠查看當前集羣的信息和節點的信息
CLUSTER INFO 列出當前節點的信息
CLUSTER NODES 列出當前集羣中的節點信息
前面一段很長的字符串就是節點的id。從這個命令能夠知道哪些節點還活着,哪些節點已經掛了。端口後面帶着fail的都是掛掉的節點。
退出集羣鏈接才能關閉某一個節點:
./redis-cli -c -h 192.168.80.230 -p 7000 shutdown
這條命令的意思是關閉230機器上端口爲7000的redis節點。
關閉以後能夠鏈接集羣去執行 CLUSTER NODES ,這個節點的狀態已是fail。
添加一個節點以前務必保證該節點已經啓動了,若是該節點以前在建立集羣時已經在集羣裏面了,關閉該節點而後再從新啓動,該節點會自動加入集羣。
./redis-server ../redis_cluster/7000/redis.conf
而後鏈接進集羣,若是該節點以前不在集羣中,鏈接集羣輸入cluster meet 命令就能夠指定某個節點加入集羣。
CLUSTER MEET 192.168.80.230:7000 CLUSTER forget fd72b78b1eaa430ca309bc5226d90fe67199a576
這個一長段字符串是節點的id,forget以後能夠再去看節點的信息。
forget以後,若是一分鐘不進行任何操做,該節點會自動加入集羣。