中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis 集群部署

發布時間:2020-02-29 10:58:36 來源:網絡 閱讀:724 作者:jamswuhappy 欄目:數據庫

Redis Cluster 部署文檔

updated: 09/05/2019

1 說明

Redis Cluster 的主要特點如下:

  • 無中心結構,客戶端與 redis 節點直連,不需要中間代理層
  • 節點冗余設計,slave->master 選舉,集群容錯
  • 數據分片存儲,且支持在線分片
  • ASK / MOVED 轉向機制,可通過任意節點,讀寫不屬于本節點的數據

本文以部署一個可實現高可用的最小集群為例,集群部署在三臺主機上,包含 M1、M2、M3、S1、S2、S3 六個節點。

M1、M2、M3 為主節點對應 Redis 實例:7000,7001,7002
S1、S2、S3 為從節點對應 Redis 實例:7003,7004,7005

主從節點交叉連接,對應關系為:

M1 -> S2
M2 -> S3
M3 -> S1

2 環境準備

系統環境

主機 IP 節點-角色-實例(端口)
redis1 192.168.0.100 M1-master-7000、S1-slave-7003
redis2 192.168.0.101 M2-master-7001、S2-slave-7004
redis3 192.168.0.102 M3-master-7002、S3-slave-7005

3 安裝軟件

分別在三臺主機上編譯安裝 redis 5.0.4 版本。

安裝完畢建議將 redis bin 目錄加入 PATH 環境變量

4 配置集群

參考步驟 4.1 - 4.3,分別在三臺主機上進行 Redis 集群配置。

4.1 創建集群目錄

創建集群各節點配置和數據目錄。

mkdir -p /data/redis-cluster/{7000,7001}

以 redis1 為例,目錄結構如下:

/data/redis-cluster/
├── 7000
│?? ├── redis.conf  # redis 實例配置文件
│?? └── nodes.conf  # redis 集群節點的配置文件(由集群自動創建)
└── 7003
│?? ├── redis.conf  # redis 實例配置文件
│?? └── nodes.conf  # redis 集群節點的配置文件(由集群自動創建)
4.2 創建實例配置文件

分別復制 redis 源碼目錄下的 redis.conf 至節點配置和數據目錄。

編輯 redis 實例配置文件中的各項配置。redis 默認未開啟集群功能,需修改下面幾個配置開啟:

port 7000
bind 0.0.0.0                    # 允許其他主機連接
dir /data/redis-cluster/7000    # 節點實例配置目錄
cluster-enabled yes             # 開啟集群
cluster-config-file nodes.conf  # 集群配置文件
cluster-node-timeout 5000       # 超時時間
appendonly yes                  # 并開啟AOF模式

請根據生產環境性能需求和實際部署情況修改相關配置項,注意每個節點的實例配置文件中端口不同。

4.3 防火墻設置

根據情況修改服務器防火墻配置,允許 Redis 主機互相連接 7000-7005, 17000-17005 端口,允許所有業務服務器連接 Redis 服務器的 7000-7005 端口。

5 啟動集群

5.1 啟動實例

分別在三臺主機上啟動全部 6 個 redis 節點實例,啟動時指定配置文件為各自節點配置目錄中的 redis.conf。

5.2 啟動集群

在任意一臺 redis 節點主機上執行如下命令啟動集群:

redis-cli --cluster create \
    --cluster-replicas 1 \
    192.168.0.100:7000 \
    192.168.0.100:7001 \
    192.168.0.101:7002 \
    192.168.0.101:7003 \
    192.168.0.102:7004 \
    192.168.0.102:7005

注意修改命令中的 IP 為 redis 節點實例端口對應的真實主機 IP。

根據提示輸入yes,出現下列信息則表示集群創建成功。

[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

6 測試

查看集群信息

在任意一個 redis 節點的主機上執行以下命令:

# redis-cli -c -h 192.168.0.100 -p 7000 cluster info

應輸出類型以下信息:

cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:101
cluster_stats_messages_pong_sent:98
cluster_stats_messages_sent:199
cluster_stats_messages_ping_received:93
cluster_stats_messages_pong_received:101
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:199

列出集群節點

在任意一個 redis 節點的主機上執行以下命令,列出集群當前已知的所有節點(node),以及這些節點的相關信息。

# redis-cli -c -h 192.168.0.100 -p 7000 cluster nodes

輸出類似以下信息:

50725018cd7f5f20214b0ed462975258397dfe29 192.168.0.102:7005@17005 slave 39e335386bb48f012f433287ed853174009114e5 0 1554876136000 6 connected
8874f69c2f5747cce3a02387167a00cdaba43d3c 192.168.0.100:7001@17001 master - 0 1554876137380 2 connected 5461-10922
c9cb48efbc1a83098cb730a5295402d9cdb343c2 192.168.0.101:7003@17003 slave 917301c74a9ed1ed52918b8e4c7f88de9743c361 0 1554876136375 4 connected
5633e918818033552b1adc089d99fbe9bcf36589 192.168.0.102:7004@17004 slave 8874f69c2f5747cce3a02387167a00cdaba43d3c 0 1554876136072 5 connected
917301c74a9ed1ed52918b8e4c7f88de9743c361 192.168.0.100:7000@17000 myself,master - 0 1554876136000 1 connected 0-5460
39e335386bb48f012f433287ed853174009114e5 192.168.0.101:7002@17002 master - 0 1554876136878 3 connected 10923-16383

查看集群數據槽分配

在任意一個 redis 節點的主機上執行以下命令,顯示集群當前所有數據槽的分配情況。

# redis-cli -c -h 192.168.0.100 -p 7000 cluster slots

輸出類似以下信息:

1) 1) (integer) 5461
   2) (integer) 10922
   3) 1) "127.0.0.1"
      2) (integer) 7001
   4) 1) "127.0.0.1"
      2) (integer) 7004
2) 1) (integer) 0
   2) (integer) 5460
   3) 1) "127.0.0.1"
      2) (integer) 7000
   4) 1) "127.0.0.1"
      2) (integer) 7003
3) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "127.0.0.1"
      2) (integer) 7002
   4) 1) "127.0.0.1"
      2) (integer) 7005
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邢台县| 普兰店市| 留坝县| 巴东县| 夹江县| 阳江市| 当涂县| 郧西县| 陵川县| 文安县| 宜川县| 乌鲁木齐县| 游戏| 禄丰县| 彭泽县| 邮箱| 重庆市| 台山市| 托克逊县| 灵宝市| 镇巴县| 锡林浩特市| 金堂县| 微博| 陈巴尔虎旗| 河南省| 琼海市| 梓潼县| 德格县| 廉江市| 鹤岗市| 高邮市| 精河县| 吉首市| 临海市| 观塘区| 南召县| 永寿县| 海宁市| 和政县| 梨树县|