Centos7中Redis集群搭建

1、在centos中新建目录/data/soft,将redis-5.0.4.tar.gz安装包上传到/data/soft目录下

在这里插入图片描述
将redis-5.0.4.tar.gz文件解压

tar -zxvf redis-5.0.4.tar.gz

将解压后的文件redis-5.0.4重命名为redis

mv redis-5.0.4 redis

安装gcc依赖

yum install gcc

2、进入到/data/soft/redis目录下

# 编译安装
make MALLOC=libc
# 安装
cd src && make install

3、进入到/data/soft/redis目录下,创建目录cluster,并且在cluster目录下创建7001、7002、7003、7004、7005、7006这6个目录

在这里插入图片描述

4、进入到/data/soft/redis/cluster/7001目录下

将/data/soft/redis/redis.conf文件复制到/data/soft/redis/cluster/7001

# 进入/data/soft/redis/cluster/7001目录下
cd /data/soft/redis/cluster/7001
# copy redis.conf文件
cp /data/soft/redis/redis.conf redis.conf

同样的操作,将/data/soft/redis/redis.conf分别copy到/data/soft/redis/cluster/7002、7003、7004、7005、7006的目录下

5、修改/data/soft/redis/cluster/7001/redis.conf文件配置信息如下:

bind 192.168.1.21
port 7001
daemonize yes
pidfile /var/run/redis_7001.pid
dir "./" # node.conf文件保存路径
logfile "/var/log/redis/7001/redis.log"
appendonly yes
appendfsync always
cluster-enabled yes
cluster-config-file nodes-7001.conf # 该文件中包含集群信息

修改/data/soft/redis/cluster/7002/redis.conf文件配置信息如下:

bind 192.168.1.21
port 7001
daemonize yes
pidfile /var/run/redis_7002.pid
dir "./" # node.conf文件保存路径
logfile "/var/log/redis/7002/redis.log"
appendonly yes
appendfsync always
cluster-enabled yes
cluster-config-file nodes-7002.conf # 该文件中包含集群信息

根据上面进行修改7003/redis.conf、7004/redis.conf、7005/redis.conf、7006/redis.conf

6、启动6个redis节点

启动redis节点时需要注意,一定要进入到每一个节点的目录中,然后执行启动命令

# 进入到7001节点目录
cd /data/soft/redis/cluster/7001
# 执行启动命令
/data/soft/redis/src/redis-server ./redis.conf

同样的操作,启动7002、7003、7004、7005、7006其他节点
在这里插入图片描述

7、创建redis集群

/data/soft/redis/src/redis-cli  --cluster create 192.168.1.21:7001 192.168.1.21:7002 192.168.1.21:7003 192.168.1.21:7004 192.168.1.21:7005 192.168.1.21:7006 --cluster-replicas 1 

在这里插入图片描述

8、问题汇总

8.1、redis.conf文件中 bind 127.0.0.1 注释掉
8.2、redis.conf文件中 protected-mode yes改为protected-mode no
8.3、第7步–cluster create 语句中 ip要用公网ip

9、测试代码

public static void main(String[] args) {
		try {
			Set<HostAndPort> nodes = new HashSet<>();
		    nodes.add(new HostAndPort("192.168.1.21", 7001));
		    nodes.add(new HostAndPort("192.168.1.21", 7002));
		    nodes.add(new HostAndPort("192.168.1.21", 7003));
		    nodes.add(new HostAndPort("192.168.1.21", 7004));
		    nodes.add(new HostAndPort("192.168.1.21", 7005));
		    nodes.add(new HostAndPort("192.168.1.21", 7006));
		    
		    //在nodes中指定每个节点的地址
		    //jedisCluster在系统中是单例的。
		    JedisCluster jedisCluster = new JedisCluster(nodes);
		    jedisCluster.set("name", "张明");
		    jedisCluster.set("value", "2000");
		    String name = jedisCluster.get("name");
		    String value = jedisCluster.get("value");
		    System.out.println(name);
		    System.out.println(value);
		    //系统关闭时关闭jedisCluster
		    jedisCluster.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

在这里插入图片描述

参考:Redis5版本集群搭建

发布了122 篇原创文章 · 获赞 152 · 访问量 112万+

猜你喜欢

转载自blog.csdn.net/ytangdigl/article/details/104622585