簡介:
Redis的集群模式實作了資料的分布式存盤,每個節點存盤不同的資料,實作資料動態擴容,
優點:無中心節點架構,資料按照slot分布在多個節點上
缺點:不支持多資料庫
1、安裝包準備
1、redis-4.0.1.tar.gz redis源檔案
下載地址:https://download.redis.io/releases/redis-4.0.1.tar.gz
2、ruby-2.5.9.tar.gz ruby安裝包
2、安裝機器準備
三臺機器:192.168.43.120 192.168.43.130 192.168.43.140 3主3從,每臺機器兩個節點
3、目錄創建和redis編譯
a、在120機器上創建目錄:/opt/soft
b、進入soft目錄,執行 wget https://download.redis.io/releases/redis-4.0.1.tar.gz 下載redis源檔案
c、執行 tar -zxvf redis-4.0.1.tar.gz 解壓源檔案包,解壓后得到redis-4.0.1目錄
d、cd redis-4.0.1 目錄,編譯源檔案,執行命令:make
如果出現以下錯誤:

說明沒有gcc,運行 yum install gcc
再執行make命令,如果出現以下錯誤:

則執行命令:make MALLOC=libc
4、節點創建
每臺機器配置兩個節點 7000和7001
創建目錄 mkdir cluster

進入cluster目錄,分別創建7000和7001目錄

復制組態檔,把redis.conf分別復制到7000和7001下

增加配置:
分別在7000和7001下的redis.conf添加如下配置


bind 192.168.43.140 port 7000 #masterauth 123456 #requirepass 123456 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 5000 appendonly yes
保存退出
5、啟動節點
執行命令分別啟動7000和7001節點:
./src/redis-server /opt/soft/redis-4.0.1/cluster/7000/redis.conf &
./src/redis-server /opt/soft/redis-4.0.1/cluster/7001/redis.conf &
啟動成功如下:

其它兩臺機器一樣操作
6、創建集群(只需要在一臺機器上執行)
a、安裝ruby
tar -zxvf ruby-2.5.9.tar.gz
cd ruby-2.5.9/
./configure --prefix=/usr/local/ruby
make && make install
查看安裝后的版本
/usr/local/ruby/bin/ruby -v
設定環境變數
vi /etc/profile
export PATH=$PATH:/usr/local/ruby/bin:
source /etc/profile
b、安裝gem
運行命令gem install redis

出現如下錯誤說明確實zlib庫
yum install zlib-devel
集成zlib庫到ruby環境
cd /opt/soft/ruby-2.5.9/ext/zlib/
ruby extconf.rb

操作之前修改Makefile里的檔案
vi Makefile
在檔案最后找到:zlib.o: $(top_srcdir)/include/ruby.h 修改為 zlib.o: ../../include/ruby.h 保存退出
執行命令 make && make install
執行命令gem install redis 如果報一下錯誤

安裝 openssl-devel
yum install openssl-devel
集成openssl庫到ruby
cd /opt/soft/ruby-2.5.9/ext/openssl/
ruby extconf.rb
修改Makefile 里面的
ossl.o: $(top_srcdir)/include/ruby.h 修改為 ossl.o: ../../include/ruby.h
ossl_asn1.o: $(top_srcdir)/include/ruby.h 修改為 ossl_asn1.o: ../../include/ruby.h
ossl_bio.o: $(top_srcdir)/include/ruby.h
ossl_bn.o: $(top_srcdir)/include/ruby.h
ossl_cipher.o: $(top_srcdir)/include/ruby.h
等等全部修改
保存退出
執行命令 make && make install
最后 運行命令gem install redis
如果卡死 執行 gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

c、創建集群
./redis-trib.rb create --replicas 1 192.168.43.120:7000 192.168.43.120:7001 192.168.43.130:7000 192.168.43.130:7001 192.168.43.140:7000 192.168.43.140:7001
[root@centos3 src]# ./redis-trib.rb create --replicas 1 192.168.43.120:7000 192.168.43.120:7001 192.168.43.130:7000 192.168.43.130:7001 192.168.43.140:7000 192.168.43.140:7001 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.43.120:7000 192.168.43.130:7000 192.168.43.140:7000 Adding replica 192.168.43.130:7001 to 192.168.43.120:7000 Adding replica 192.168.43.120:7001 to 192.168.43.130:7000 Adding replica 192.168.43.140:7001 to 192.168.43.140:7000 M: 5b341137f0fa22573b34a14206b3b4c625986f42 192.168.43.120:7000 slots:0-5460 (5461 slots) master S: 5e162d8d5dad7e6e4fa9ecefac9b3d27e8659e33 192.168.43.120:7001 replicates 6cbcdc0f773f5c1d895aeb33b29da449890e3064 M: 6cbcdc0f773f5c1d895aeb33b29da449890e3064 192.168.43.130:7000 slots:5461-10922 (5462 slots) master S: 6ac36c5449c77caca707b67c8d01dcc9efe3f0fa 192.168.43.130:7001 replicates 5b341137f0fa22573b34a14206b3b4c625986f42 M: f8c1c69d67ebecb3e6092e901fe1ca66bd097381 192.168.43.140:7000 slots:10923-16383 (5461 slots) master S: 4e632fd278a48016c62255746f5128c121a71dfe 192.168.43.140:7001 replicates f8c1c69d67ebecb3e6092e901fe1ca66bd097381 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.43.120:7000) M: 5b341137f0fa22573b34a14206b3b4c625986f42 192.168.43.120:7000 slots:0-5460 (5461 slots) master 1 additional replica(s) S: 6ac36c5449c77caca707b67c8d01dcc9efe3f0fa 192.168.43.130:7001 slots: (0 slots) slave replicates 5b341137f0fa22573b34a14206b3b4c625986f42 M: 6cbcdc0f773f5c1d895aeb33b29da449890e3064 192.168.43.130:7000 slots:5461-10922 (5462 slots) master 1 additional replica(s) M: f8c1c69d67ebecb3e6092e901fe1ca66bd097381 192.168.43.140:7000 slots:10923-16383 (5461 slots) master 1 additional replica(s) S: 4e632fd278a48016c62255746f5128c121a71dfe 192.168.43.140:7001 slots: (0 slots) slave replicates f8c1c69d67ebecb3e6092e901fe1ca66bd097381 S: 5e162d8d5dad7e6e4fa9ecefac9b3d27e8659e33 192.168.43.120:7001 slots: (0 slots) slave replicates 6cbcdc0f773f5c1d895aeb33b29da449890e3064 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
最后客戶端測驗

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/458317.html
標籤:NoSQL
上一篇:華為大資料云管理平臺實測
下一篇:Redis持久化
