日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis 多服务器集群搭建

發布時間:2024/1/1 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis 多服务器集群搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Redis 多服務器集群搭建

近期,想到之前使用的Redis集群測試使用的是單服務器上的偽集群,重溫《Redis深度歷險-核心原理與應用實踐》的案例,覺得還是搭建一下多服務器集群來玩一玩會更有感觸。

常規操作,記錄一下搭建集群的過程。

1 條件

  • 基于redis6.0.9版本進行集群的搭建
  • 集群要求至少六個節點,即每個主節點配置1個從節點,本集群是使用了3個主節點并每個下面掛一個從節點,三個主節點分布在3臺服務器上。

集群配置信息如下:

服務器MasterSlave
10.1.24.128(服務器名master)67516752
10.1.24.129(slave1)67516752
10.1.24.130(slave2)67516752

端口名為什么要叫675*呢?因為掃地生原名的諧音是675,所以讀者可以自定義端口名。

2 集群配置

關于Redis的基本知識也可以看看掃地生之前的學習筆記

在第一臺服務器(10.1.24.128)上操作

  • 下載redis源碼包并解壓
  • cd /usr/enviromentwget -c http://download.redis.io/releases/redis-6.0.9.tar.gztar -zxvf redis-6.0.9.tar.gz
  • 新建集群配置目錄
  • mkdir -p /usr/environment/redis-cluster/6751 /usr/environment/redis-cluster/6752

  • 將解壓后的文件中的redis.conf配置文件拷貝到集群目錄之下 并執行redis安裝命令
  • cd redis-6.0.9cp redis.conf /usr/environment/redis-clustermake install # 注意 gcc版本與Redis版本的沖突解決,如果沒有指定路徑,則編譯后Redis的bin默認在/usr/local,也可以 make install PREFIX=/xx/xx 來指定編譯后Redis的bin存放路徑,注意這里的PREFIX一定要大寫

    make或make install時出現如下錯誤:

    gcc版本問題,新版本的,Redis6.0以上,需要更高版本的gcc,而centOS 7自帶的GCC版本往往不符合。

    解決方法:

    #升級到 5.3及以上版本 yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash#注意:scl命令啟用只是臨時的,推出xshell或者重啟就會恢復到原來的gcc版本。 #如果要長期生效的話,執行如下: echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
  • 進入/usr/local,復制bin文件到6751,6752目錄下
  • cd /usr/localcp -r bin /usr/environment/redis-cluster/6751cp -r bin /usr/environment/redis-cluster/6752
  • 進入redis-cluster目錄,修改redis.conf并分別拷貝到6751,6752

    修改配置文件內容如下:

  •  1)屏蔽限制本地訪問, 將bind 127.0.0.1 修改為 bind 0.0.0.0

    2) protected-mode保護模式從yes改為no,實現免密登錄

    3)daemonize后的no改為yes

    4)去掉cluster-enabled yes 前面的注釋

    5)去掉cluster-node-timeout 前面的注釋

    6)port后的端口改為6751

    ?

    7)將運行的pid路徑改為對應的端口號便于管理,將redis.conf文件,復制到對應的目錄下

    cp redis.conf 6751

    8)修改node配置

    cluster-config-file nodes-6751.conf # 修改為對應的節點ID

    9)再次編輯redis.conf 將port參數修改 6751 ==> 6752,復制到對應目錄下.

    sed -i 's/6751/6752/g' redis.confcp redis.conf 6752
  • 啟動redis服務
  • /usr/environment/redis-cluster/6751/bin/redis-server /usr/environment/redis-cluster/6751/redis.conf/usr/environment/redis-cluster/6752/bin/redis-server /usr/environment/redis-cluster/6752/redis.conf

    注意點: 在啟動服務之前要修改配置文件中對應的dump dir目錄,否則默認目錄是 ./ 需要改成對應的絕對路徑,否則會造成路徑沖突,導致啟動失敗

    查看啟動的服務:

    也可以用RDM連接測試:

  • 直接將master中的集群配置復制到其他兩個服務器即可,需要注意的是,需要設置對應的端口與目錄

    scp -r /usr/environment/redis-cluster/ root@slave1:/usr/environmentscp -r /usr/environment/redis-cluster/ root@slave2:/usr/environment
  • 效果如下:

    第一臺(master)

    第二臺(slave1):

    第三臺(slave2):

    3 集群搭建

    使用Redis客戶端執行命令:

    /usr/environment/redis-cluster/6751/bin/redis-cli --cluster create --cluster-replicas 1 10.1.24.128:6751 10.1.24.128:6752 10.1.24.129:6751 10.1.24.129:6752 10.1.24.130:6751 10.1.24.130:6752

    注意:上述指令中的IP地址不能用主機名代替,因為redis對主機名的識別不是很友好,,如果改成下面這個會出現錯誤:

    /usr/environment/redis-cluster/6751/bin/redis-cli --cluster create --cluster-replicas 1 master:6751 master:6752 slave1:6751 slave1:6752 slave2:6751 slave2:6752

    參數說明:

    --cluster 集群管理命令 后面可以執行集群相關的命令

    --cluster-replicas 1 代表每個Master攜帶一個Slave

    create 創建集群命令

    4 客戶端測試

      開啟客戶端 鏈接任意一個Master節點

    redis-cli -h 10.1.24.128 -c -a 密碼 -p 端口

    參數:

    -c: 連接到集群

    我們可以看到,當我們set一個鍵值對的時候,Redis會自動為我們的key計算CRC16值,然后對16384取模,獲取key對應的hash slot,然后通過判斷該槽被那個Master所占用,幫我們重定向到那個Master節點,將鍵值對存入。

    查看集群信息:

    cluster nodes

    通過RDM的連接圖標可以明顯區別集群連接和非集群連接的區別:

    5 參考文章

    參考文章1

    總結

    以上是生活随笔為你收集整理的Redis 多服务器集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。