部署redis cluster

部署集羣之前,需求停掉之前的redis進程和哨兵;
redis cluster雖然支持集羣,會自動進行主從分佈,但其實是不支持讀寫分離的。
1.redis cluster 重要配置
cluster-enabled
cluster-config-file <filename>
這是指定一個文件,供cluster模式下的redis實例將集羣狀態保存在那裏,包括集羣中其他機器的信息,比如節點的上線和下限,故障轉移,不是我們去維護的,給它指定一個文件,讓redis自己去維護的
cluster-node-timeout <milliseconds>
節點存活超時時長,超過一定時長,認爲節點宕機,master宕機的話就會觸發主備切換,slave宕機就不會提供服務

  1. 開始部署6個jedis實例
    鑑於之前已經部署過redis,這裏只需要修改配置文件屬性與名稱即可
    mkdir -p /etc/redis-cluster redis cluster的自動配置文件夾
    mkdir -p /var/redis/7001,7002,7003... redis的數據文件 aof dump
    mkdir -p /var/log/redis redis的log文件夾
    複製/etc/redis/6379.conf並修改如下參數重命名爲7001.conf
    port 7001
    cluster-enabled yes
    cluster-config-file /etc/redis-cluster/node-7001.conf
    cluster-node-timeout 15000
    daemonize yes #守護進程
    pidfile /var/run/redis_7001.pid
    dir /var/redis/7001
    logfile /var/log/redis/7001.log
    bind 192.168.1.107
    appendonly yes #允許aof
    這邊注意:無需開啓slaveof 因爲cluster會自動分配主從節點,無需自動配置;因爲是本地測試,authpass requirepass全部不啓用
  2. 準備啓動腳本
    /ect/init.d 下 複製redis_6379 重命名爲 redis_7001 修改相應端口
    4.創建集羣
    yum install -y ruby
    yum install -y rubygem
    gem install redis
    最後一步的時候報錯了:redis需要 ruby version > 2.2的版本
    參考後在線升級了ruby的版本:https://www.cnblogs.com/carryping/p/7447823.html
    cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin
    redis-trib.rb create --replicas 1 192.168.1.107:7001 192.168.1.107:7002 192.168.1.108:7003 192.168.1.108:7004 192.168.1.105:7005 192.168.1.105:7006

    --replicas參數: 每個master有幾個slave

    最後使用 redis-trib.rb check 192.168.1.107:7001 檢查redis cluster部署情況,也可以查詢redis log日誌

    由於redis cluster不支持讀寫分離,在set get數據的時候會根據計算出來key的splot不同 會提示move to
    可以使用 readonly 在從節點上讀取主節點數據;
    使用redis-cli -h host -p port -c 強制自動進行底層重定向

    redis cluster 其他參數和命令參考:
    http://blog.csdn.net/mysqldba23/article/details/67640478

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