Redis集群搭建及java连接redis

本文详细介绍了Redis的三种集群模式:主从关系、Sentinel哨兵和Cluster去中心化集群,包括各自的特点和搭建步骤。对于Java连接Redis,文章以maven项目为例,演示了如何引入Jedis依赖并实现连接及连接池的使用。
摘要由CSDN通过智能技术生成

Redis集群搭建及java连接redis

Redis集群分为三种:

1、主从关系模式

2、Sentinel哨兵关系模式

3、Cluster去中心化模式

1、主从关系模式

1.1、什么是主从模式?

(1)主节点只有一个,从节点可以有多个(即一个主节点可以有多个对应的从节点)。

(2)主节点值负责写入操作,从节点负责读取操作(从节点无法使用写入操作)。

(3)主节点宕机后,从节点会等待主节点修复归来,整个集群无法使用。而一个从节点宕机,不会影响到其他节点的运行。

在这里插入图片描述

1.2、主从模式的搭建

(1)redis安装目录下创建master-slave目录,将redis.conf文件复制三份进去(假设有一个主节点,两个从节点)

创建master-slave目录用于存放主从的redis文件	
mkdir master-slave

复制三个redis.conf到创建的文件中
cp redis.conf /home/redis/master-slave/redis7001.conf
cp redis.conf /home/redis/master-slave/redis7002.conf
cp redis.conf /home/redis/master-slave/redis7003cd.conf

(2)修改master-slave中的redis文件:

①编辑redis7001.conf文件。

vi redis7001.conf

②找到端口号的位置并修改为7001(自定义端口号)
在这里插入图片描述

③修改持久化文件的名称(RDB文件)
在这里插入图片描述
④关闭AOF的持久化:
在这里插入图片描述

(3)启动redis时指定上面的三个配置文件

redis-server redis7001.conf

redis-server redis7002.conf

redis-server redis7003.conf

(4)分别登录redis7001、7002、7003账号(注意分界面操作)

redis-cli -h ip(自己的ip) -p7001

redis-cli -h ip(自己的ip) -p7002

redis-cli -h ip(自己的ip) -p7003

(5)设置7001为主节点

查看当前节点主从信息
info replication

从节点中设置7001为主节点(两个从节点都要配置)
slaveof ip(主节点所在的ip) 7001


主从节点中分别使用读写操作,发现:
	1、主节点只负责写,但是可以进行读操作。
	2、从节点中可以进行读操作,但是无法使用写操作。
	3、新增一个从节点,会发现数据与其余节点数据一致。
	
将主节点关闭发现从节点无法进行读取操作,查看主从信息显示主节点处于down状态。

将主节点开启,关闭其中一个从节点,发现主从节点均不受影响。

因此:
	1、主节点宕机,集群会处于无法操作状态,从节点不能进行操作。
	2、从节点宕机,其余从节点及主节点均不受影响

2、Sentinel哨兵关系模式:

哨兵可以有多个,主节点每隔一段时间会向哨兵发送“状态信息”,一旦超过规定时间未发送信息,哨兵会认为主节点宕机,随后在从节点中选取一个节点作为主节点,主节点再次上线后会成为新的主节点的从节点。
在这里插入图片描述

2.1哨兵模式的搭建

1、使用主从模式的redis(不再重新创建主从节点)。

2、修改sentinel文件中的配置
vi sentinel

# 192.168.31.166表示redis主节点的ip (本机的可以为127.0.0.1)
# 7001 表示主节点的端口号
# 1 表示有多少个哨兵选取redis从节点后,该从节点可以当选为主节点。
sentinel monitor mymaster 192.168.31.166 7001 1


3、启动哨兵
redis-sentinel sentinel.conf

4、测试
将7001关闭,,哨兵选取了7002为主节点。

哨兵解决了主从模式中主节点宕机,从节点等待造成的集群停止运行的缺点。

但是哨兵依然没有解决单节点的问题,且持久化文件始终在一个服务器上。

3、Cluster去中心化集群

解决了单节点的问题。使用了分槽的概念。去中心化可以说是sentinel哨兵模式和主从模式的结合体,通过cluster可以实现主从和master重选功能,所以如果配置两个副本三个分片的话,就需要六个Redis实例。因为Redis的数据是根据一定规则分配到cluster的不同机器的,当数据量过大时,可以新增机器进行扩容。

3.1、创建集群并配置(必须保证aof开启,并保证redis中没有数据)

1、创建three-master-three-slave文件夹
mkd
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值