首頁 資料庫 Redis redis怎麼組成集群

redis怎麼組成集群

Jun 06, 2019 pm 01:59 PM
redis集群

redis怎麼組成集群

簡單說明

2018十月Redis 發布了穩定版本的5.0 版本,推出了各種新特性,其中一點是放棄Ruby的叢集方式,改為使用C語言編寫的redis-cli的方式,使叢集的建構方式複雜度大大降低。關於叢集的更新可以在Redis5 的版本說明中看到,如下:

The cluster manager was ported from Ruby (redis-trib.rb) to C code inside redis-cli. check `redis-cli --cluster help ` for more info.
登入後複製

可以查看Redis官網查看叢集建立方式,連接如下

https://redis.io/topics/ cluster-tutorial

以下步驟是在一台Linux 伺服器上建置有6個節點的Redis叢集。

操作步驟

建立目錄

新目錄:/root/software/redis

下載原始碼並解壓縮編譯

wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar xzf redis-5.0.0.tar.gz
cd redis-5.0.0
make
登入後複製

建立6個Redis設定檔

6個設定檔不能在同一個目錄,這裡我們定義如下:

/root/software/redis/redis-cluster-conf/7001/redis.conf
/root/software/redis/redis-cluster-conf/7002/redis.conf
/root/software/redis/redis-cluster-conf/7003/redis.conf
/root/software/redis/redis-cluster-conf/7004/redis.conf
/root/software/redis/redis-cluster-conf/7005/redis.conf
/root/software/redis/redis-cluster-conf/7006/redis.conf
登入後複製

設定檔的內容為:

port 7001  #端口
cluster-enabled yes #启用集群模式
cluster-config-file nodes.conf
cluster-node-timeout 5000 #超时时间
appendonly yes
daemonize yes #后台运行
protected-mode no #非保护模式
pidfile  /var/run/redis_7001.pid
登入後複製

其中port 與pidfile 需要隨著資料夾的不同調增

#啟動節點

/root/software/redis/redis-5.0.0/src/redis-server  /root/software/redis/redis-cluster-conf/7001/redis.conf
/root/software/redis/redis-5.0.0/src/redis-server  /root/software/redis/redis-cluster-conf/7002/redis.conf
/root/software/redis/redis-5.0.0/src/redis-server  /root/software/redis/redis-cluster-conf/7003/redis.conf
/root/software/redis/redis-5.0.0/src/redis-server  /root/software/redis/redis-cluster-conf/7004/redis.conf
/root/software/redis/redis-5.0.0/src/redis-server  /root/software/redis/redis-cluster-conf/7005/redis.conf
/root/software/redis/redis-5.0.0/src/redis-server  /root/software/redis/redis-cluster-conf/7006/redis.conf
登入後複製

#啟動叢集

#
/root/software/redis/redis-5.0.0/src/redis-cli --cluster create 192.168.2.40:7001 192.168.2.40:7002 192.168.2.40:7003 192.168.2.40:7004 192.168.2.40:7005 192.168.2.40:7006 --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 192.168.2.40:7004 to 192.168.2.40:7001
Adding replica 192.168.2.40:7005 to 192.168.2.40:7002
Adding replica 192.168.2.40:7006 to 192.168.2.40:7003
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 191c645200a8b4d267f71e3354c8248dbb533dde 192.168.2.40:7001
   slots:[0-5460] (5461 slots) master
M: 400a08d4e5a534c1b609988105d3e045395fbd12 192.168.2.40:7002
   slots:[5461-10922] (5462 slots) master
M: 684f6aa0fbccda295ce6818a8c01ee7255a7b002 192.168.2.40:7003
   slots:[10923-16383] (5461 slots) master
S: f2701549ae98315b432d73b49d139ee77d5685b4 192.168.2.40:7004
   replicates 684f6aa0fbccda295ce6818a8c01ee7255a7b002
S: 9fdc1e375436767ab815cbddd3df674f3bc2ca99 192.168.2.40:7005
   replicates 191c645200a8b4d267f71e3354c8248dbb533dde
S: e7742888ed85b37cff4a98e861e99bb16e8bae2c 192.168.2.40:7006
   replicates 400a08d4e5a534c1b609988105d3e045395fbd12
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.2.40:7001)
M: 191c645200a8b4d267f71e3354c8248dbb533dde 192.168.2.40:7001
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 684f6aa0fbccda295ce6818a8c01ee7255a7b002 192.168.2.40:7003
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: 9fdc1e375436767ab815cbddd3df674f3bc2ca99 192.168.2.40:7005
   slots: (0 slots) slave
   replicates 191c645200a8b4d267f71e3354c8248dbb533dde
S: e7742888ed85b37cff4a98e861e99bb16e8bae2c 192.168.2.40:7006
   slots: (0 slots) slave
   replicates 400a08d4e5a534c1b609988105d3e045395fbd12
M: 400a08d4e5a534c1b609988105d3e045395fbd12 192.168.2.40:7002
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: f2701549ae98315b432d73b49d139ee77d5685b4 192.168.2.40:7004
   slots: (0 slots) slave
   replicates 684f6aa0fbccda295ce6818a8c01ee7255a7b002
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
登入後複製

至此,Reids叢集建置完成。

以上是redis怎麼組成集群的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

利用ThinkPHP6實現Redis集群 利用ThinkPHP6實現Redis集群 Jun 20, 2023 am 08:36 AM

隨著網路的快速發展,高併發的問題也愈發突出。針對這個問題,Redis的出現成為了一個重要的方案,它透過記憶體讀寫的方式,解決了傳統關係型資料庫讀寫壓力過大的問題。然而,單節點Redis在高並發情況下仍然存在效能瓶頸,因此需要使用Redis叢集。本文將講述如何使用ThinkPHP6實作Redis叢集。一、Redis集群介紹Redis集群是Redis官方提供的分

Redis與Node.js的叢集方案:如何實現高可用性 Redis與Node.js的叢集方案:如何實現高可用性 Jul 29, 2023 pm 05:42 PM

Redis與Node.js的叢集方案:如何實現高可用性引言:隨著網際網路的快速發展,資料的處理變得越來越龐大且複雜。為了確保系統的高可用性和可擴展性,我們需要使用分散式叢集架構來處理儲存和處理大量資料的需求。 Redis作為高效能的記憶體資料庫,結合Node.js作為後端程式語言,可以建立高可用的分散式叢集方案。本文將介紹如何使用Redis與Node.js實現

如何透過Redis實現PHP資料快取的叢集部署? 如何透過Redis實現PHP資料快取的叢集部署? Aug 10, 2023 am 08:13 AM

如何透過Redis實現PHP資料快取的叢集部署?簡介:PHP應用在面對高並發和大流量時,常會遇到資料庫效能瓶頸的問題,這時候使用快取技術能很好地提升系統的效能和並發能力。 Redis作為一個高效能的記憶體鍵值資料庫,被廣泛應用於快取方案的實作。本文將介紹如何透過Redis實現PHP資料快取的叢集部署,以進一步提升效能和可擴充性。一、Redis集群概述Redis

Redis中的Redis集群和PHP的使用方法 Redis中的Redis集群和PHP的使用方法 May 15, 2023 pm 03:22 PM

Redis是一款強大的記憶體鍵值對儲存資料庫。與常規的RDBMS(關聯式資料庫管理系統)相比,它具有更高的效能和更好的伸縮性。 Redis的優點之一是它可以作為分散式系統的核心技術。在這篇文章中,我們將探討Redis集群的概念以及如何在PHP中使用Redis集群。 Redis集群是什麼?簡單來說,Redis叢集即為多個Redis實例的聚合體。 Redis集群允許我們

學習Go語言中的資料庫函數並實作Redis叢集的讀寫操作 學習Go語言中的資料庫函數並實作Redis叢集的讀寫操作 Jul 29, 2023 pm 12:21 PM

學習Go語言中的資料庫函數並實現Redis叢集的讀寫操作引言:資料庫是當今網路應用不可或缺的一部分,而Go語言作為一門開發簡潔高效的程式語言,也具備了良好的資料庫操作能力。本文將介紹如何在Go語言中使用資料庫函數,並實作Redis叢集的讀寫操作。一、Go語言中的資料庫函數Go語言中對資料庫的操作主要透過database/sql包來實現。該套件提供了基本的數據

Redis與PHP的叢集方案:如何實現高可用性與擴充性 Redis與PHP的叢集方案:如何實現高可用性與擴充性 Jul 30, 2023 pm 08:51 PM

Redis與PHP的叢集方案:如何實現高可用性和擴展性引言:Redis是一種開源的高效能記憶體資料庫,常用於建立快速、可擴展的應用程式。而PHP作為一門流行的伺服器端腳本語言,與Redis配合使用能夠實現高可用性和擴展性的叢集方​​案。本文將介紹如何使用Redis與PHP建立一個高可用性和擴展性的集群,並透過程式碼範例詳細說明。一、Redis集群的搭建安裝與配置Re

如何利用Redis和Julia語言實現高可用叢集功能 如何利用Redis和Julia語言實現高可用叢集功能 Sep 20, 2023 am 10:58 AM

如何利用Redis和Julia語言實現高可用叢集功能引言:隨著網路業務的發展,對於系統的可用性要求越來越高。為了確保系統在發生故障時能夠繼續提供服務,高可用性成為了各行業中的關鍵需求之一。本文將介紹如何利用Redis和Julia語言實現高可用叢集功能,並提供具體的程式碼範例。一、什麼是高可用群集高可用群集是透過將多個節點組織在一起,從而形成一個整體的系統,

Redis集群擴容方案及實作細節 Redis集群擴容方案及實作細節 Jun 21, 2023 am 10:58 AM

Redis是一個高效能的開源記憶體資料儲存服務,因其快速讀寫速度、可持久化儲存和多種資料結構支持,越來越受到開發者們的青睞。隨著業務的不斷壯大,Redis的儲存容量已經無法滿足需求,這時需要進行擴充。本文將介紹Redis集群擴容的方案及其實作細節。 Redis集群的概念Redis集群是指將多個Redis實例連接在一起,形成一個大的Redis實例集合,可以提高Re

See all articles