搜尋
首頁資料庫Redisredis集群建立新手教程

redis集群建立新手教程

Jan 04, 2021 am 09:28 AM
redis叢集

redis集群建立新手教程

redis集群建立

(學習影片分享:redis影片教學

##在介紹正式內容之前,首先我們來介紹一下redis單機版的建置步驟是怎麼樣的。

    下載redis壓縮包,然後解壓縮壓縮檔;
  1. 進入到解壓縮後的redis檔目錄(此時可以看到Makefile檔),編譯redis原始檔;
  2. 把編譯好的redis原始檔安裝到/usr/local/redis目錄下,如果/local目錄下沒有redis目錄,會自動新建redis目錄;
  3. 進入/usr/local/ redis/bin目錄,直接./redis-server啟動redis(此時為前端啟動redis);
  4. 將redis啟動方式改為後端啟動,具體做法:把解壓縮的redis檔案下的redis .conf檔複製到/usr/local/redis/bin目錄下,然後修改該redis.conf檔->daemonize:no 改為daemonize:yse;
  5. 在/bin目錄下透過./redis -server redis.conf啟動redis(此時為背景啟動)。
  6. 綜上redis單機版安裝啟動完成。
    具體詳細帶圖步驟請參考 -> redis入門

    請原諒我的囉嗦,ok,接著咱們回到本次話題----redis集群搭建!

一、Redis Cluster(Redis叢集)簡介

    redis是一個開源的key value儲存系統,受到了廣大互聯網公司的青睞。 redis3.0版本之前只支援單例模式,在3.0版本及以後才支援集群,我這裡用的是redis3.0.0版本;
  • redis集群採用P2P模式,是完全去中心化的,不存在中心節點或代理節點;
  • redis集群是沒有統一的入口的,客戶端(client)連接集群的時候連接集群中的任意節點(node)即可,集群內部的節點是相互通信的(PING-PONG機制),每個節點都是一個redis實例;
  • 為了實現叢集的高可用,即判斷節點是否健康(能否正常使用),redis-cluster有這麼一個投票容錯機制:如果叢集中超過一半的節點投票認為某個節點掛了,那麼這個節點就掛了(fail)。這是判斷節點是否掛了的方法;
  • 那麼如何判斷叢集是否掛了呢? -> 如果叢集中任意一個節點掛了,而且該節點沒有從節點(備份節點),那麼這個集群就掛了。這是判斷叢集是否掛了的方法;
  • 那麼為什麼任意一個節點掛了(沒有從節點)這個叢集就掛了呢? -> 因為集群內置了16384個slot(哈希槽),並且把所有的物理節點映射到了這16384[0-16383]個slot上,或者說把這些slot均等的分配給了各個節點。當需要在Redis叢集存放一個資料(key-value)時,redis會先對這個key進行crc16演算法,然後得到一個結果。再把這個結果對16384進行求餘,這個餘數會對應[0-16383]其中一個槽,進而決定key-value儲存到哪個節點中。所以一旦某個節點掛了,該節點對應的slot就無法使用,那麼就會導致叢集無法正常運作。
  • 綜上所述,每個Redis集群理論上最多可以有16384個節點。

二、叢集搭建所需的環境 2.1 Redis叢集至少需要3個節點,因為投票容錯機制要求超過半數節點認為某個節點掛了該節點才是掛了,所以2個節點無法構成叢集。
2.2 要確保叢集的高可用,需要每個節點都有從節點,也就是備份節點,所以Redis叢集至少需要6台伺服器。因為我沒有那麼多伺服器,也啟動不了那麼多虛擬機,所在這裡搭建的是偽分佈式集群,即一台伺服器虛擬運行6個redis實例,修改端口號為(7001-7006),當然實際生產環境的Redis集群搭建和這裡是一樣的。
2.3 安裝ruby

三、叢集搭建特定步驟如下(注意關閉防火牆) 3.1 在usr/local目錄下新建redis-cluster目錄,用於存放叢集節點

redis集群建立新手教程 3.2 把redis目錄下的bin目錄下的所有檔案複製到/usr/local/redis-cluster/redis01目錄下,不用擔心這裡沒有redis01目錄,會自動建立的。操作命令如下(注意目前所在路徑):

cp -r redis/bin/ redis-cluster/redis01

redis集群建立新手教程
3.3 刪除redis01目錄下的快照文件dump.rdb,並且修改該目錄下的redis.cnf文件,具體修改兩處地方:一是端口號修改為7001,二是開啟集群建立模式,開啟註解即可。分別如下圖所示:
刪除dump.rdb檔
redis集群建立新手教程
修改埠號為7001,預設是6379
redis集群建立新手教程
將cluster-enabled yes 的註解開啟
redis集群建立新手教程
3.4 將redis-cluster/redis01檔案複製5份到redis-cluster目錄下(redis02-redis06),建立6個redis實例,模擬Redis叢集的6個節點。然後將其餘5個檔案下的redis.conf裡面的連接埠號碼分別修改為7002-7006。分別如下圖所示:
建立redis02-06目錄
redis集群建立新手教程

#分別修改redis.conf檔案埠號為7002-7006
redis集群建立新手教程
# 3.5 接著啟動所有redis節點,由於一個一個啟動太麻煩了,所以在這裡創建一個批量啟動redis節點的腳本文件,命令為start-all.sh,文件內容如下:

cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

3.6 創建好啟動腳本文件之後,需要修改該腳本的權限,使之能夠執行,指令如下:

chmod +x start-all.sh

redis集群建立新手教程

#3.7 執行start-all.sh腳本,啟動6個redis節點
redis集群建立新手教程
3.8 ok,至此6個redis節點啟動成功,接下來正式開啟搭建集群,以上都是準備條件。大家不要覺得圖片多看起來冗長所以覺得麻煩,其實以上步驟也就一句話的事情:創建6個redis實例(6個節點)並啟動。
要搭建叢集的話,需要使用一個工具(腳本檔案),這個工具在redis解壓縮檔案的原始程式碼裡。因為這個工具是ruby腳本文件,所以這個工具的運作需要ruby的運行環境,就等於java語言的運作需要在jvm上。所以需要安裝ruby,指令如下:

yum install ruby

然後需要把ruby相關的套件安裝到伺服器,我這裡用的是redis-3.0.0.gem,大家需要注意的是:redis的版本和ruby包的版本最好保持一致。

將Ruby套件安裝到伺服器:需要先下載再安裝,如圖
redis集群建立新手教程
# 安裝指令如下:

gem install redis-3.0.0.gem

redis集群建立新手教程

3.9 上一步已經把ruby工具所需的運作環境和ruby套件安裝好了,接下來需要把這個ruby腳本工具複製到usr/local/redis-cluster目錄下。那麼這個ruby腳本工具在哪裡呢?之前提到過,在redis解壓縮檔的源碼裡,即redis/src目錄下的redis-trib.rb檔。
redis集群建立新手教程
redis集群建立新手教程
3.10 將該ruby工具(redis-trib.rb)複製到redis-cluster目錄下,指令如下:

cp redis-trib.rb /usr/local/redis-cluster

然後使用該腳本文件建立集群,指令如下:

./redis-trib.rb create --replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:7006

注意:此處大家應該根據自己的伺服器ip輸入對應的ip位址!

redis集群建立新手教程

中途有個地方需要手動輸入yes即可
redis集群建立新手教程
至此,Redi叢集建立成功!大家注意最後一段文字,顯示了每個節點所分配的slots(哈希槽),這裡總共6個節點,其中3個是從節點,所以3個主節點分別映射了0-5460、5461-10922、 10933-16383solts。

3.11 最後連接叢集節點,連接任一即可:

redis01/redis-cli -p 7001 -c

注意:一定要加上-c,不然节点之间是无法自动跳转的!如下图可以看到,存储的数据(key-value)是均匀分配到不同的节点的:

redis集群建立新手教程

四、结语
呼~~~长舒一口气…终于搭建好了Redis集群。
整个过程其实挺简单,本篇主要正对入门级别的小伙伴,插入了很多图片,所以显得冗长,希望大家多多理解,如果不当之处,还望及时指正~

最后,加上两条redis集群基本命令:
1.查看当前集群信息

cluster info

2.查看集群里有多少个节点

cluster nodes

相关推荐:redis数据库教程

以上是redis集群建立新手教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除
REDIS:對其數據庫方法進行分類REDIS:對其數據庫方法進行分類Apr 15, 2025 am 12:06 AM

Redis的數據庫方法包括內存數據庫和鍵值存儲。 1)Redis將數據存儲在內存中,讀寫速度快。 2)它使用鍵值對存儲數據,支持複雜數據結構,如列表、集合、哈希表和有序集合,適用於緩存和NoSQL數據庫。

為什麼要使用redis?利益和優勢為什麼要使用redis?利益和優勢Apr 14, 2025 am 12:07 AM

Redis是一個強大的數據庫解決方案,因為它提供了極速性能、豐富的數據結構、高可用性和擴展性、持久化能力以及廣泛的生態系統支持。 1)極速性能:Redis的數據存儲在內存中,讀寫速度極快,適合高並發和低延遲應用。 2)豐富的數據結構:支持多種數據類型,如列表、集合等,適用於多種場景。 3)高可用性和擴展性:支持主從復制和集群模式,實現高可用性和水平擴展。 4)持久化和數據安全:通過RDB和AOF兩種方式實現數據持久化,確保數據的完整性和可靠性。 5)廣泛的生態系統和社區支持:擁有龐大的生態系統和活躍社區,

了解NOSQL:Redis的關鍵特徵了解NOSQL:Redis的關鍵特徵Apr 13, 2025 am 12:17 AM

Redis的關鍵特性包括速度、靈活性和豐富的數據結構支持。 1)速度:Redis作為內存數據庫,讀寫操作幾乎瞬時,適用於緩存和會話管理。 2)靈活性:支持多種數據結構,如字符串、列表、集合等,適用於復雜數據處理。 3)數據結構支持:提供字符串、列表、集合、哈希表等,適合不同業務需求。

REDIS:確定其主要功能REDIS:確定其主要功能Apr 12, 2025 am 12:01 AM

Redis的核心功能是高性能的內存數據存儲和處理系統。 1)高速數據訪問:Redis將數據存儲在內存中,提供微秒級別的讀寫速度。 2)豐富的數據結構:支持字符串、列表、集合等,適應多種應用場景。 3)持久化:通過RDB和AOF方式將數據持久化到磁盤。 4)發布訂閱:可用於消息隊列或實時通信系統。

REDIS:流行數據結構指南REDIS:流行數據結構指南Apr 11, 2025 am 12:04 AM

Redis支持多種數據結構,具體包括:1.字符串(String),適合存儲單一值數據;2.列表(List),適用於隊列和棧;3.集合(Set),用於存儲不重複數據;4.有序集合(SortedSet),適用於排行榜和優先級隊列;5.哈希表(Hash),適合存儲對像或結構化數據。

redis計數器怎麼實現redis計數器怎麼實現Apr 10, 2025 pm 10:21 PM

Redis計數器是一種使用Redis鍵值對存儲來實現計數操作的機制,包含以下步驟:創建計數器鍵、增加計數、減少計數、重置計數和獲取計數。 Redis計數器的優勢包括速度快、高並發、持久性和簡單易用。它可用於用戶訪問計數、實時指標跟踪、遊戲分數和排名以及訂單處理計數等場景。

redis命令行怎麼用redis命令行怎麼用Apr 10, 2025 pm 10:18 PM

使用 Redis 命令行工具 (redis-cli) 可通過以下步驟管理和操作 Redis:連接到服務器,指定地址和端口。使用命令名稱和參數向服務器發送命令。使用 HELP 命令查看特定命令的幫助信息。使用 QUIT 命令退出命令行工具。

redis集群模式怎麼搭建redis集群模式怎麼搭建Apr 10, 2025 pm 10:15 PM

Redis集群模式通過分片將Redis實例部署到多個服務器,提高可擴展性和可用性。搭建步驟如下:創建奇數個Redis實例,端口不同;創建3個sentinel實例,監控Redis實例並進行故障轉移;配置sentinel配置文件,添加監控Redis實例信息和故障轉移設置;配置Redis實例配置文件,啟用集群模式並指定集群信息文件路徑;創建nodes.conf文件,包含各Redis實例的信息;啟動集群,執行create命令創建集群並指定副本數量;登錄集群執行CLUSTER INFO命令驗證集群狀態;使

See all articles

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

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版

SublimeText3 Mac版

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

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能