Redis集群搭建流程

2021-10-02 12:57:32 字數 2677 閱讀 5055

redis 集群中內建了 16384 個雜湊槽,當需要在 redis 集群中放置乙個 key-value 時,redis 先對 key 使用 crc16 演算法算出乙個結果,然後把結果對 16384 求餘數,這樣每個 key 都會對應乙個編號在 0-16383 之間的雜湊槽,redis 會根據節點數量大致均等的將雜湊槽對映到不同的節點

1、集群搭建

集群中應該至少有三個節點,每個節點有一備份節點。需要6臺伺服器。搭建偽分布式,需要6個redis例項。

(因環境限制,僅是在同一臺伺服器上使用6個不同埠啟動redis個例項,3個作為主節點,3個作為備用節點)

(1)搭建步驟

a、建立6個redis例項並指定埠(7001-7006)

在redis目錄下建立 redis-cluster目錄

將redis原始碼複製6份放到redis-cluster目錄下

b、修改redis配置檔案(六個都需要改)

vi ./redis01/etc/redis.conf

將cluster-enable yes注釋開啟

然後修改對應埠 port 7001(其他依次為 7002 …)

c、安裝ruby環境(因為集群執行需要乙個ruby指令碼)

1、yum install ruby

2、安裝redis集群需要的包

gem install redis -v 3.3.3

[root@localhost /usr/local/redis]#gem install redis -v 3.3.3

fetching: redis-3.3.3.gem (100%)

successfully installed redis-3.3.3

parsing documentation for redis-3.3.3

installing ri documentation for redis-3.3.3

1 gem installed

d、寫乙個shell指令碼用來啟動redis集群所有服務

vim start-all.sh

#!/bin/bash

clusterpath="/usr/local/redis/redis-cluster/"

cd $clusterpath

redis_arr=(01 02 03 04 05 06)

for num in $

doecho "start num

nthr

edis

serv

er..

."cd

redi

snth redis server..." cd redis

numnth

redi

sser

ver.

.."c

dred

is/bin/

redis-server …/etc/redis.conf

cd …

cd …

done

chmod +x start-all.sh

啟動所有rediss例項

e、使用redis-trib.rb建立集群

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

發現這個命令會出錯。說我沒有許可權。然後給前面加了ruby 表明是ruby指令碼。

./start-all.sh

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

成功f、建立cluster過程可能會遇到一些問題:

參考:1)、>>> creating cluster

[err] node 192.168.1.102:7001 is not empty. either the node already knows other nodes (check with cluster nodes) or contains some key in database 0.

解決方法:

刪除每個節點下的dump.rdb檔案

或挨個進行flushdb

3.集群測試

搭建redis集群

sudo apt get install git python python pip sudo pip install redis sudo pip install e git sudo pip install e git git clone ll binaries total 19m 173582...

redis集群搭建

redis集群搭建持久化保證了即使redis服務重啟不會丟失資料,因為redis服務重啟後會將硬碟上持久化的資料恢復到記憶體中,但是當redis伺服器的硬碟損壞了可能會導致資料丟失,如果通過redis的主從複製機制就可以避免這種單點故障。接下來開始redis集群的搭建。1 ruby環境2 建立集群 ...

redis集群搭建

redis集群部署文件 centos6系統 要讓集群正常工作至少需要3 個主節點,在這裡我們要建立6個 redis 節點,其中三個為主節點,三個為從節點,對應的 redis 節點的ip 和埠對應關係如下 127.0.0.1 7000 127.0.0.1 7001 127.0.0.1 7002 127...