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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

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

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

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

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

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