mac環境下redis集群的搭建

2021-08-02 13:43:55 字數 2918 閱讀 3291

一,為什麼要搭建redis集群

個人理解,redis是個記憶體資料庫,資料都存在記憶體中,既然存在記憶體中,那麼大小肯定受伺服器記憶體大小的限制。比如乙個64g記憶體的伺服器,乙個redis撐死也就能儲存64g的資料量,而對於大型**架構,資料量豈止是64g,有的**甚至儲存了上t的資料量,遇見這種情況,怎麼辦?

在redis 3.0版本之前,通常是獲取key的hashcode,然後取模(mod),但是這種做法的缺點是無法很好的支援動態伸縮要求,一但有節點的增加或者刪除操作,都會導致key無法在redis上命中。redis 3.0版本之後開始支援集群(cluster),採用的是雜湊槽(hash slot)。他可以把多個redis例項整合在一起,形成乙個集群。比如100g的資料量,一台伺服器儲存不下,那我可以將它分散到多台機器上,每個客戶端都連線乙個redis服務例項,這是乙個無中心結構,每個節點都儲存資料和整個集群的狀態。每個節點也都知道其他節點所負責的槽。比如下面的例子:

我在集群7001幾點set了乙個key:「cluster7001」 value : "test"

那麼我在集群的7002節點訪問這個key:

可以看到,redis會指引你轉向至正確的節點(7001)和槽的位置(1391)

二,mac下redis集群的搭建

好,我們簡單介紹了一下redis集群出現的背景,由於本片部落格重點在於搭建redis集群,所以關於redis集群的知識不做詳細的介紹,我們言歸正傳:

要想讓redis集群工作,至少需要3個主節點,那我們在這裡要建立6個節點,三個主,三個從。對應的節點埠,我們定義為7001-7006

2、建立集群目錄

找到redis的安裝目錄,在裡面建立集群資料夾

sudo mkdir redis-cluster

cd 到redis-cluster資料夾裡,建立六個節點資料夾:

mkdir redis01

mkdir redis02

mkdir redis03

mkdir redis04

mkdir redis05

mkdir redis06

3、修改配置檔案

找到redis安裝目錄,vi redis.conf,需要修改下面資訊:

port 7001 --埠

daemonize yes --指定redis是否以後臺程序方式啟動

cluster-eanbled yes --集群開啟開關

cluster-config-file nodes.conf --節點配置說明檔案,redis自己維護

cluster-node-timeout 5000 --心跳測試反應時間,超過5s沒有反應認為該節點掛掉

修改完這個配置檔案後,分辨拷貝到六個檔案節點資料夾中,redis01-06,同時修改對應埠7001-7006,然後將redis安裝包src路徑下的redis-server檔案分別拷貝到六個節點資料夾中。

4、分別啟動redis6個例項

開啟終端,分別執行以下命令:

cd /usr/local/redis/redis-cluster/redis01/

sudo redis-server redis.conf

cd /usr/local/redis/redis-cluster/redis02/

sudo redis-server redis.conf

......

6個例項都啟動完畢,檢驗一下redis啟動情況:

ps -ef|grep redis

會看到6個例項都已啟動成功:

但是現在只是分別啟動了6個單獨的redis例項,還不存在「群」的概念,我們要做的,是把這六個例項串聯起來,組成「群」

5、公升級ruby安裝gem

gem的安裝要求ruby的版本在1.8.7以上,先看一下本機的版本

我的版本是2.0.0,復合要求。然後安裝:

出現上述情況,安裝成功。

6、建立redis集群

cd 到redis安裝目錄下的src路徑下,找到redis-trib.rb檔案,執行一下命令:

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

執行完後會看到

至此,redis集群搭建成功!我們來測試一下:

cd到redis安裝目錄的src目錄,會看到redis-cli 這個檔案,然後執行:

redis-cli -c -p 7001

set test yeah

然後會看到7001(主)7004(從)都有這個key,ok,測試通過!

mac下clion glfw glad環境搭建

clion cmake make make install然後會看到glfw安裝到了 usr local lib 95 built target monitors 98 built target events 100 built target icon install the project.ins...

Mac系統下React Native環境搭建

這裡記錄一下在mac系統下搭建react native開發環境的過程 1.安裝homebrew usr bin ruby e curl fssl 安裝完後如下所示 可使用命令 brew v 檢視其版本。3.安裝react native的命令列工具 需要sudo來安裝,有些目錄需要高階許可權 4.安裝...

redis集群redis cluster搭建

這是來自redis官網的一段介紹,大概意思就是 redis是乙個開源 bsd許可 的記憶體資料結構儲存,用作資料庫 快取和訊息 它支援諸如字串 雜湊 列表 集 帶範圍查詢的排序集 位圖 hyperloglogs 帶半徑查詢和流的地理空間索引等資料結構。redis具有內建的複製 lua指令碼 lru清...