Redis集群搭建與簡單使用

2021-10-05 07:35:30 字數 3115 閱讀 2250

用3臺虛擬機器模擬6個節點,實現集群目標:

redis 採用 redis-4.0.14.tar.gz 版本

m: 192.168.0.183:7000 192.168.0.184:7000 192.168.0.185:7000

s: 192.168.0.184:7001 192.168.0.185:7001 192.168.0.183:7001

編譯安裝命令:

tar -zxvf redis-4.0.14.tar.gz

cd redis-4.0.14

make

&&make

install

cd /usr/local/

mkdir redis_cluster //建立集群目錄

mkdir -p 7001/data //建立7000和7000/data目錄 分別對應集群三個節點

mkdir -p 7002/data //建立7000和7000/data目錄 分別對應集群三個節點

//建立7001節點為例,拷貝到7000目錄

cp /usr/local/redis-4.0.14/redis.conf ./redis_cluster/7001/redis.conf

//拷貝到7002目錄

cp /usr/local/redis-4.0.14/redis.conf ./redis_cluster/7002/redis.conf

1、redis後台執行,修改為yes

daemonize yes

2、修改對應埠資訊,埠對應為7000,7001

port ***x

3、開啟集群 把注釋#去掉

cluster-enabled yes

4、集群的配置 配置檔案首次啟動自動生成 7000,7001

cluster-config-file /usr/local/redis_cluster/7001/data/nodes_***x.conf

5、請求超時 設定5秒夠了

cluster-node-timeout 5000

6、aof日誌開啟 有需要就開啟,它會每次寫操作都記錄一條日誌

7、pid檔案儲存

pidfile /var/run/redis_***x.pid

8、工作目錄

dir /usr/local/redis-cluster/***x

9、允許訪問ip

bind 0.0.0.0

10、log輸出目錄

logfile "/redis_cluster/***x(埠號)/logs/redis.log"

以上配置中redis .conf ***x 就代表對應的埠號!

cd /usr/local

redis-server redis_cluster/7001/redis.conf

redis-server redis_cluster/7002/redis.conf

進入指定埠redis:redis-cli -p 7001

很簡單 只要執行 redis可執行檔案,然後指定我們直接寫好的配置檔案就好了

執行成功 後netstat -anop |grep redis 看看是否成功執行了,如果成功了就沒問題了

1、安裝ruby:

tar -zxvf ruby-2.6.4.tar.gz

cd ruby-2.4.3

./configure

make

make

install

2、安裝rubygems-3.0.6.tgz

ruby setup.rb

3、安裝redis-4.1.3.gem

gem install -l ./redis-3.2.1.gem

建立集群

redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中,使用下面這個命令即可完成安裝。

redis-trib.rb  create  --replicas  1  192.168.0.183:7000   192.168.0.184:7000    192.168.0.185:7000 192.168.0.184:7001   192.168.0.185:7001   192.168.0.183:7001
到此我們的集群就搭建完成了,我們 隨意連線 上面六個 redis 節點的位址,都能夠 連線到這個集群。

集群理解

cluster在設計的時候,就考慮到了去中心化,去中介軟體,也就是說,集群中的每個節點都是平等的關係,都是對等的,每個節點都儲存各自的資料和整個集群的狀態。每個節點都和其他所有節點連線,而且這些連線保持活躍,這樣就保證了我們只需要連線集群中的任意乙個節點,就可以獲取到其他節點的資料。

redis 集群沒有並使用傳統的一致性雜湊來分配資料,而是採用另外一種叫做雜湊槽 (hash slot)的方式來分配的。redis

cluster 預設分配了 16384 個slot,當我們set乙個key 時,會用crc16演算法來取模得到所屬的slot,然後將這個key

分到雜湊槽區間的節點上,具體演算法就是:crc16(key) % 16384。所以我們在測試的時候看到set 和 get的時候,直接跳轉到了7000埠的節點。

redis 集群會把資料存在乙個 master 節點,然後在這個 master 和其對應的salve

之間進行資料同步。當讀取資料時,也根據一致性雜湊演算法到對應的 master 節點獲取資料。只有當乙個master

掛掉之後,才會啟動乙個對應的 salve 節點,充當 master 。

需要注意的是:必須要3個或以上的主節點,否則在建立集群時會失敗,並且當存活的主節點數小於總節點數的一半時,整個集群就無法提供服務了。

Redis集群搭建與簡單使用

redis集群搭建 1 安裝redis 分別啟動各個redis,關鍵是conf conf配置 port 7000 埠7000,7002,7003 bind 本機ip 預設ip為127.0.0.1 需要改為其他節點機器可訪問的ip 否則建立集群時無法訪問對應的埠,無法建立集群 daemonize ye...

Redis集群搭建與簡單使用

介紹安裝環境與版本 我用了三颱虛擬機器模擬6個節點,一台機器2個節點,建立出3個master 3個salve 環境。redis 採用 redis 4.0.1 版本。上台臺虛擬機器都是 centos 一台 centos7 ip 192.168.3.231 一台 centos7 ip 192.168.3...

搭建與使用redis集群

redis集群中至少應該有三個節點。要保證集群的高可用,需要每個節點有乙個備份機。redis集群至少需要 6臺伺服器。搭建偽分布式。可以使用一台虛擬機器執行6個 redis 例項。需要修改 redis 的埠號 7001 7006 1 使用 ruby 指令碼搭建集群。需要 ruby 的執行環境。安裝r...