redis3.2.1集羣介紹及在Linux操作系統上安裝

一、redis集羣介紹點擊打開鏈接

Redis3.0版本之後支持Cluster.


二、redis集羣安裝

準備工作:

      1. 安裝兩臺虛擬機,模擬6個節點,一臺機器3個節點,創建出3 master、3 salve 環境。

      2. 虛擬機安裝參考:http://blog.csdn.net/z3225167/article/details/79537280

      3. 兩臺虛擬機都是 CentOS ,一臺 CentOS7 (IP:192.168.230.166),一臺 CentOS7(IP:192.168.31.167) 。

安裝過程:

      1. 下載並解壓

                mkdir /tools   然後  cd /tools
                wget http://download.redis.io/releases/redis-3.2.1.tar.gz
                tar -zxvf redis-3.2.1.tar.gz

      2. 編譯安裝

                make && make install
                如果出現錯誤,需要安裝gcc。   
                yum -y install gcc gcc-c++ libstdc++-devel

      3. 創建 Redis 節點

           在每臺服務器的tools目錄下創建redis_cluster目錄,並且在redis_cluster下分別創建對應的端口目錄,並且將redis.conf複製到對應的目錄中  

                mkdir redis_cluster
                mkdir 7000 7001 7002
                cp redis.conf /tools/redis_cluster/7000
                cp redis.conf /tools/redis_cluster/7001
                cp redis.conf /tools/redis_cluster/7002

            分別修改對應的redis.conf

port  7000                         //端口7000,7002,7003        
#bind 127.0.0.1   //開啓遠程訪問需要註釋掉本機IP 並且把 protected-mode 改爲 no 
protected-mode no //開啓遠程訪問需要註釋掉本機IP 並且把 protected-mode 改爲 no
daemonize    yes      //redis後臺運行
pidfile  /var/run/redis_7000.pid      //pidfile文件對應7000,7001,7002
cluster-enabled  yes                    //開啓集羣  把註釋#去掉
cluster-config-file  nodes_7000.conf   //集羣的配置  配置文件首次啓動自動生成 7000,7001,7002
cluster-node-timeout  15000                //請求超時  默認15秒,可自行設置
appendonly  yes          //aof日誌開啓  有需要就開啓,它會每次寫操作都記錄一條

在這裏有必要說下如果當前redis不需要持久化,只作爲緩存使用,可以進行如下配置

save "" //把其於的save註釋掉,只留下save ""
maxmemory 1536mb  //限制內存使用,如果你的內存是2G 可以使用當前這個配置
maxmemory-policy allkeys-lru //設置清理緩存的策略,如果達到了你配置的緩存,則會清理
#下面爲redis官網上的幾種清理策略: 
#volatile-lru:從已設置過期時間的數據集(server.db[i].expires)中挑選最近最少使用的數據淘汰
#volatile-ttl:從已設置過期時間的數據集(server.db[i].expires)中挑選將要過期的數據淘汰
#volatile-random:從已設置過期時間的數據集(server.db[i].expires)中任意選擇數據淘汰
#allkeys-lru:從數據集(server.db[i].dict)中挑選最近最少使用的數據淘汰
#allkeys-random:從數據集(server.db[i].dict)中任意選擇數據淘汰
#no-enviction(驅逐):禁止驅逐數據
maxmemory-samples 3 默認值3,上面LRU和最小TTL策略並非嚴謹的策略,而是大約估算的方式,因此可以選擇取樣值以便檢查

接着在另外一臺機器上(192.168.230.167),的操作重複以上三步,只是把目錄改爲7003、7004、7005,對應的配置文件也按照這個規則修改即可

4. 啓動各個節點:

第一臺機器上執行
redis-server /tools/redis_cluster/7000/redis.conf
redis-server /tools/redis_cluster/7001/redis.conf
redis-server /tools/redis_cluster/7002/redis.conf
 
另外一臺機器上執行
redis-server /tools/redis_cluster/7003/redis.conf
redis-server /tools/redis_cluster/7004/redis.conf
redis-server /tools/redis_cluster/7005/redis.conf

對應的機器查看各個節點的啓動情況:

ps -ef | gerp redis
root      61020      1  0 02:14 ?        00:00:01 redis-server 192.168.230.166:7000 [cluster]    
root      61024      1  0 02:14 ?        00:00:01 redis-server 192.168.230.166:7001 [cluster]    
root      61029      1  0 02:14 ?        00:00:01 redis-server 192.168.230.166:7002 [cluster]    
 
netstat -tnlp | grep redis
tcp        0      0 192.168.230.166:17000             0.0.0.0:*                   LISTEN      61020/redis-server 
tcp        0      0 192.168.230.166:17001             0.0.0.0:*                   LISTEN      61024/redis-server 
tcp        0      0 192.168.230.166:17002             0.0.0.0:*                   LISTEN      61029/redis-server 
tcp        0      0 192.168.230.166:7000              0.0.0.0:*                   LISTEN      61020/redis-server 
tcp        0      0 192.168.230.166:7001              0.0.0.0:*                   LISTEN      61024/redis-server 
tcp        0      0 192.168.230.166:7002              0.0.0.0:*                   LISTEN      61029/redis-server

5. 創建集羣

Redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中,第三步中已將它複製到 /usr/local/bin 目錄中,可以直接在命令行中使用了。使用下面這個命令即可完成安裝。

redis-trib.rb  create  --replicas  1  192.168.230.166:7000 192.168.230.166:7001  192.168.230.166:7002 192.168.230.167:7003  192.168.230.167:7004  192.168.230.167:7005


查看集羣情況

redis-trib.rb check 192.168.230.166:7000


如果創建集羣出錯,需要安裝ruby環境:

安裝ruby環境:

  1.yum install ruby

   

  2.yum install rubygems

   

  3.gem install redis

      

  Centos默認支持ruby到2.0.0,redis需要最低是2.2.2。解決辦法是 先安裝rvm 再把ruby版本升級到2.3.3 

       1.sudo yum install curl

       2.安裝rvm

    curl -L get.rvm.io | bash -s stable 

  3.

   source /usr/local/rvm/scripts/rvm

  4.查看rvm庫中已知的ruby版本

    rvm list known

  5.安裝一個ruby版本

    rvm install 2.3.3

  6.使用一個ruby版本

    rvm use 2.3.3

  7.卸載一個已知版本

   rvm remove 2.0.0 

  8.查看版本

   ruby --version

  9.再安裝redis

   gem install redis

其他錯誤處理:

解決方式 : 是因爲之前創建redis集羣時錯誤因起的,只需要把 redis.conf 中指定的文件刪除即可,一般默認的文件名是: nodes.conf , 所有的節點下都有一個這樣的文件,所以需要把所有的nodes.conf都刪除即可

編寫啓動腳本:

#!/bin/sh
#chkconfig: 2345 80 90
#description:開機自動啓動的腳本程序
redis-server /tools/redis_cluster/7000/redis.conf
redis-server /tools/redis_cluster/7001/redis.conf
redis-server /tools/redis_cluster/7002/redis.conf
chmod 777 start-all.sh   //設置權限
./start-all.sh 執行
如果需要開機啓動則將寫好的start-all.sh腳本移動到/etc/rc.d/init.d/目錄下
cd /etc/rc.d/init.d/
chmod +x start-all.sh
添加腳本到開機自動啓動項目中
chkconfig --add autostart.sh
chkconfig autostart.sh on

參考資料:http://www.jb51.net/article/122971.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章