您的位置:首页 > 数据库 > Redis

redis伪集群搭建

2019-04-08 11:45 417 查看

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.geek-share.com/detail/2716059464.html

[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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: