redis叢集搭建
導讀 | redis最開始使用主從模式做叢集,若master當機需要手動配置slave轉為master;後來為了高可用提出來哨兵模式,該模式下有一個哨兵監視master和slave,若master當機可自動將slave轉為master,但它也有一個問題,就是不能動態擴充;所以在3.x提出cluster叢集模式。 |
安裝Redis叢集準備
採用原生搭建的方式搭建3主3從的Redis Cluster,分別給3個master節點配置一個slave節點,總計6個Redis節點。
但由於我們只有4臺機器,所以選擇在其中的兩臺機器上安裝兩個redis。
修改配置檔案
port 6380 # server埠,4臺server用預設的6379,所以無需修改,另外兩臺則改成6380。 # bind 127.0.0.1 //這一行要註釋,否則無法遠端連線 cluster-enabled yes cluster-config-file nodes.conf //node.conf檔案不用管。 cluster-node-timeout 5000 appendonly yes //aof daemonize yes protected-mode no
啟動服務
[root@localhost]# redis-server redis.conf
到這裡我們就有以叢集模式啟動的6臺redis server,但是每臺伺服器還沒有進行slot指派,此時是不能對外提供服務的。
開放防火牆埠
[root@test-3]# firewall-cmd --zone=public --add-port={6379/tcp,16379/tcp} --permanent [root@test-3]# firewall-cmd --reload
搭建叢集(slot指派)
用redis官方提供的redis-cli
的--cluster選項。
下面的
將六臺伺服器組成一個叢集
其中複製因子為1所,以會有3臺master,另外3臺為slave。
16384個slot會盡可能均勻的指派給3臺master, 而3臺slave非同步的從其master進行復制。
任選一臺機執行以下命令
[root@test-3 redis-6.2.5]# src/redis-cli --cluster create 192.168.0.129:6379 192.168.0.250:6379 test-3:6379 test-3:6380 test-4:6379 test-4:6380 --cluster-replicas 1 >>> Performing hash slots allocation on 6 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 Adding replica test-3:6380 to 192.168.0.129:6379 Adding replica test-4:6380 to 192.168.0.250:6379 Adding replica test-4:6379 to sz-cms-3:6379 M: ae80cca550b15585b20b4ac7511f7751437f6ee 192.168.0.129:6379 slots:[0-5460] (5461 slots) master M: d7ca9360b74b777e7739e05d2265b6c4d5f5ca0 192.168.0.250:6379 slots:[5461-10922] (5462 slots) master M: 68569ee4c6bb4b60981ea34ee1b7c61b2ce285 test-3:6379 slots:[10923-16383] (5461 slots) master S: 3532972c73ce3b785d538983f725486e7a0fc9 test-3:6380 replicates ae80cca550b558b20b4acc7511f7751437f6ee S: b648cc92b55d07ec638c7d41a9ca24fc5d9160 test-4:6379 replicates 68569ee4cbb4b609881e7a34ee1b7c61b2ce285 S: 25e9b9a3de4ac4c3e47eb3fdb9f8e80c98e728f test-4:6380 replicates d7ca9360b74b777e773905d2265b6c4d5f5ca0 Can I set the above configuration? (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join >>> Performing Cluster Check (using node 192.168.0.129:6379) M: ae80cca550b185b20b4acc7511f7751437f6ee 192.168.0.129:6379 slots:[0-5460] (5461 slots) master 1 additional replica(s) M: d7ca9360b74b777e77397e05d25b6c4d5f5ca0 192.168.0.250:6379 slots:[5461-10922] (5462 slots) master 1 additional replica(s) S: 25e9b9a3de4c4c3e47b3fdb9f8e80c98e728f 192.168.0.141:6380 slots: (0 slots) slave replicates d7ca9360b74b77e7739705d2265b6c4d5f5ca0 M: 68569ee4c6bb4609881e7a34ee1b7c1b2ce285 192.168.0.228:6379 slots:[10923-16383] (5461 slots) master 1 additional replica(s) S: b648cc92b55d17ec638c7d41ca9a24fc5d9160 192.168.0.141:6379 slots: (0 slots) slave replicates 68569ee4c6bbb609881e7a4ee1b7c612ce285 S: 3532972c3ce3b785d5389783f72546e7a0fc9 192.168.0.228:6380 slots: (0 slots) slave replicates ae8ca550b5585b20b4cc7511f7751437f6ee [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
檢視叢集情況
[root@sz-cms-3 redis-6.2.5]# src/redis-cli 127.0.0.1:6379> cluster nodes 3532972c7ce3b7885d38783f725486e7a0fc9 192.168.0.228:6380@16380 slave ae80cc550b1558b20b4acc7511f77514376ee 0 1629874202654 1 connected 25eb9ade4ac4c3478eb3fdb98e80c9e728f 192.168.0.141:6380@16380 slave d7ca930b74b77777397e0d2265b6cd5f5ca0 0 1629874204664 2 connected d7ca9360b7b777e7797e05d265b64d5f5ca0 192.168.0.250:6379@16379 master - 0 1629874205000 2 connected 5461-10922 ae8cca550b15585b0b4acc751f7751437f6ee 192.168.0.129:6379@16379 master - 0 1629874206673 1 connected 0-5460 68569ee4c6b4b609881e7a3ee1b761b2ce285 192.168.0.228:6379@16379 myself,master - 0 1629874206000 3 connected 10923-16383 b648c92b55d017ec68c7d41ca9c24fc5d9160 192.168.0.141:6379@16379 slave 6856ee4c6b4b609881e734ee17c61b2ce285 0 1629874206000 3 connected
新增密碼
每個節點都需要自己上去設定。然後因為有兩個節點使用了6380埠,所以命令裡需要加入-p 6380,其他節點用預設的即可。
[root@test-3 redis-replica]# src/redis-cli -p 6380 127.0.0.1:6380> config set masterauth 123456 OK 127.0.0.1:6380> config set requirepass 123456 OK 127.0.0.1:6380> config rewrite OK
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2791849/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- 搭建 Redis 叢集Redis
- Redis(5.0) 叢集搭建Redis
- redis叢集的搭建Redis
- 搭建Redis原生叢集Redis
- Redis--叢集搭建Redis
- Docker搭建Redis叢集DockerRedis
- 搭建redis cluster叢集Redis
- redis 4.0.11 叢集搭建Redis
- 基於Dokcer搭建Redis叢集(主從叢集)Redis
- centos7搭建redis叢集CentOSRedis
- Docker Redis 5.0 叢集(cluster)搭建DockerRedis
- CentOS7 搭建 Redis 叢集CentOSRedis
- Redis 5.02官方叢集搭建Redis
- Redis主從同步叢集搭建Redis主從同步
- Redis5.0.10叢集搭建Redis
- Redis4.0.12叢集搭建Redis
- Redis叢集搭建 三主三從Redis
- Docker 容器搭建及 Redis 叢集原理DockerRedis
- Redis叢集搭建與簡單使用Redis
- Redis-cluster叢集搭建部署Redis
- Redis叢集環境搭建實踐Redis
- Redis叢集搭建(三主三從)Redis
- Redis叢集搭建採坑總結Redis
- 12. Redis叢集環境搭建Redis
- Redis 叢集搭建及使用Golang示例RedisGolang
- Redis單機及其叢集的搭建Redis
- 搭建分散式 Redis Cluster 叢集與 Redis 入門分散式Redis
- Redis學習之 Redis3.0.x 叢集搭建RedisS3
- Mac 環境下 Redis 叢集的搭建MacRedis
- Redis搭建主從複製、哨兵叢集Redis
- Linux_搭建Redis叢集哨兵模式LinuxRedis模式
- 使用redis-trib.rb工具快速搭建redis叢集Redis
- redis 叢集Redis
- redis叢集Redis
- 在K8S上搭建Redis叢集K8SRedis
- redis 叢集搭建以及redislive監測部署Redis
- 基於 Redis3.2.4 叢集搭建說明RedisS3