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

随着互联网的迅速发展,高并发的问题也愈发突出。针对这个问题,Redis的出现成为了一个重要的方案,它通过内存读写的方式,解决了传统关系型数据库读写压力过大的问题。然而,单节点Redis在高并发情况下仍然存在性能瓶颈,因此需要使用Redis集群。本文将讲述如何使用ThinkPHP6实现Redis集群。一、Redis集群介绍Redis集群是Redis官方提供的分

Redis与Node.js的集群方案:如何实现高可用性引言:随着互联网的快速发展,数据的处理变得越来越庞大和复杂。为了保证系统的高可用性和可扩展性,我们需要使用分布式集群架构来处理存储和处理大量数据的需求。Redis作为一种高性能的内存数据库,结合Node.js作为后端编程语言,可以构建高可用的分布式集群方案。本文将介绍如何使用Redis与Node.js实现

学习Go语言中的数据库函数并实现Redis集群的读写操作引言:数据库是当今互联网应用不可或缺的一部分,而Go语言作为一门开发简洁高效的编程语言,也具备了良好的数据库操作能力。本文将介绍如何在Go语言中使用数据库函数,并实现Redis集群的读写操作。一、Go语言中的数据库函数Go语言中对数据库的操作主要通过database/sql包来实现。该包提供了基本的数据

Redis是一款强大的内存键值对存储数据库。与常规的RDBMS(关系型数据库管理系统)相比,它具有更高的性能和更好的伸缩性。Redis的优点之一是它可以作为分布式系统的核心技术。在这篇文章中,我们将探讨Redis集群的概念以及如何在PHP中使用Redis集群。Redis集群是什么?简单来说,Redis集群即为多个Redis实例的聚合体。Redis集群允许我们

如何通过Redis实现PHP数据缓存的集群部署?简介:PHP应用在面对高并发和大流量时,经常会遇到数据库性能瓶颈的问题,这时候使用缓存技术能很好地提升系统的性能和并发能力。Redis作为一个高性能的内存键值数据库,被广泛应用于缓存方案的实现。本文将介绍如何通过Redis实现PHP数据缓存的集群部署,以进一步提升性能和可扩展性。一、Redis集群概述Redis

Redis与PHP的集群方案:如何实现高可用性和扩展性引言:Redis是一种开源的高性能内存数据库,常用于构建快速、可扩展的应用程序。而PHP作为一门流行的服务器端脚本语言,与Redis配合使用能够实现高可用性和扩展性的集群方案。本文将介绍如何使用Redis与PHP搭建一个高可用性和扩展性的集群,并通过代码示例详细说明。一、Redis集群的搭建安装和配置Re

如何利用Redis和Julia语言实现高可用集群功能引言:随着互联网业务的发展,对于系统的可用性要求越来越高。为了确保系统在出现故障时能够继续提供服务,高可用性成为了各个行业中的关键需求之一。本文将介绍如何利用Redis和Julia语言实现高可用集群功能,并提供具体的代码示例。一、什么是高可用集群高可用集群是通过将多个节点组织在一起,从而形成一个整体的系统,

Redis是一个高性能的开源内存数据存储服务,因其快速读写速度、可持久化存储和多种数据结构支持,越来越受到开发者们的青睐。随着业务的不断壮大,Redis的存储容量已经无法满足需求,这时需要进行扩容。本文将介绍Redis集群扩容的方案及其实现细节。Redis集群的概念Redis集群是指将多个Redis实例连接在一起,形成一个大的Redis实例集合,可以提高Re


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

WebStorm Mac版
好用的JavaScript開發工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載
最受歡迎的的開源編輯器