redis僞集羣搭建

Redis集羣規範:https://redis.io/topics/cluster-spec

1. 原理簡述:

此處的集羣指的是Cluster, 通過分區/分片來實現一定程度的分佈式與高可用部署。

2. 集羣配置:

2.1  準備工作:

Redis 最小集羣規劃,需要包含至少三個主節點,此處測試部署具有三個主服務器和三個從服務器的六節點羣集。計劃是在一臺機器上模擬一個集羣,主節點端口7000,7001,7002, 從節點7003,7004,7005,這和生產環境的集羣搭建沒本質區別

[root@hadoop104 bin]# yum install ruby -y   

[root@hadoop104 bin]# yum install rubygems -y     //rubygems,ruby組件的打包系統,安裝之後纔可以運行.gem結尾的文件

上傳rubygems-update-3.0.0.gem,

下載地址:https://rubygems.org/gems/rubygems-update/versions/3.0.0

[root@hadoop104 software]# gem install  rubygems-update-3.0.0.gem -y

2.2  集羣搭建:

節點配置文件修改

1. 進入安裝目錄/opt/module/redis/bin/目錄下,將redis服務關掉

[root@hadoop104 bin]# ./redis-cli shutdown

 2. 創建一個文件夾redis-cluster,並將bin目錄拷貝至該文件夾

[root@hadoop104 redis]# mkdir /opt/module/redis-cluster
[root@hadoop104 redis]# cp -r bin /opt/module/redis-cluster/redis01

3. 進入/opt/module/redis-cluster/redis01,刪除dump.rdb,還原redis初始狀態。

[root@hadoop104 redis01]# pwd
/opt/module/redis-cluster/redis01

[root@hadoop104 redis01]# rm -f dump.rdb 

4. 修改配置文件

①修改端口

②開啓集羣模式

集羣配置文件修改:

1. 將配置好的節點複製六份

[root@hadoop104 redis-cluster]# pwd
/opt/module/redis-cluster

[root@hadoop104 redis-cluster]# cp -r redis01/ redis02(~6)

將複製出來的節點的端口號修改就可以了,這裏改爲7002~7006

2. 將解壓的文件夾下的所有   .rb結尾的文件拷貝之redis-cluster文件夾下

[root@hadoop104 src]# pwd
/opt/module/redis-4.0.14/src

[root@hadoop104 src]# cp *.rb /opt/module/redis-cluster/

3. 將六個節點的redis服務啓動

建一個腳本文件startup.sh

#!/bin/bash
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 ..

給腳本添加執行權限

[root@hadoop104 redis-cluster]# chmod a+x startup.sh 

啓動腳本,所有redis服務啓動

[root@hadoop104 redis-cluster]# ./startup.sh

4.啓動複製過來的redis-trib.rb腳本,啓動redis集羣

該過程出現錯誤,可以參考:https://www.jb51.net/article/123987.htm

[root@hadoop104 redis-cluster]# ./redis-trib.rb create --replicas 1 192.168.1.104:7001 192.168.1.104:7002 192.168.1.104:7003 192.168.1.104:7004 192.168.1.104:7005 192.168.1.104:7006

2.3  測試

隨便進入一個節點的客戶端

[root@hadoop104 redis01]# ./redis-cli -p 7001 -c     //-p表示連接那個端口,-c表示以集羣模式啓動,

使用redisDesktopManager連接失敗,原因是端口未放開

修改防火牆端口,並重啓防火牆

[root@hadoop104 redis-cluster]# vim /etc/sysconfig/iptables

[root@hadoop104 redis-cluster]# service iptables restart

再次連接,連接六個redis服務:

3 jedis訪問集羣

Jedis jedis = new Jedis();
Set<HostAndPort> set = new HashSet<>();
set.add(new HostAndPort("192.168.1.104",7001));
set.add(new HostAndPort("192.168.1.104",7002));
set.add(new HostAndPort("192.168.1.104",7003));
set.add(new HostAndPort("192.168.1.104",7004));
set.add(new HostAndPort("192.168.1.104",7005));
set.add(new HostAndPort("192.168.1.104",7006));
JedisCluster cluster = new JedisCluster(set);


String result = cluster.get("a");
System.out.println(result);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章