redis为什么是cp_Redis【集群篇】

本文介绍了Redis的集群方案,包括主从复制模式、哨兵模式以及Redis Cluster集群。主从模式能提升读能力,但存在单一写节点问题。哨兵模式实现了自动故障切换,但无法分散写压力。而Redis Cluster通过分片策略实现了多个主节点,提供了高可用性和写压力分散。文中还详细讲解了各个模式的配置、部署和故障转移过程,并给出了Java程序连接Redis集群的步骤。
摘要由CSDN通过智能技术生成

97551f7a7c73723bfdaf098da8c481c2.png

1 redis集群简介

1.1 集群的概念

所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态(高可用)。

1.1.1 使用redis集群的必要性

--问题:我们已经部署好了redis,并且能启动一个redis,实现数据的读写,为什么还需要redis集群?

[1] 单个redis存在不稳定性。当redis服务 宕机了,就没有可用的服务了。
[2] 单个redis的读写能力是有限的。

总结:redis集群是为了强化redis的读写能力、确保服务的高可用。

1.1.2 redis集群相关术语

[1] redis集群中,每一个redis称之为一个节点。
[2] redis集群中,有两种类型的节点:主节点(master)、从节点(slave)。
[3] redis集群,是基于redis 主从复制模式实现的。

因此,学习redis集群,就是从学习redis主从复制模式开始。

2 redis主从复制模式

2.1 概念

主从复制模式中,有多个redis节点。其中, 有且仅有一个为Master,而Slave可以有多个。并且只要网络连接正常,Master会一直将自己的数据 同步更新给Slaves,保持主从同步。

2.2 特点

[1] 主节点Master 可读、可写。
[2] 从节点Slave 只读

因此,主从模式可以提高读的能力,在一定程度上缓解了写的能力。因为能写仍然只有Master节点一个,可以将读的操作全部移交到从节点上,变相提高了写能力。

--主从模式架构图:

cfeef0e8328855bfe0f23c9522f54ca8.png

2.3 基于配置实现

2.3.1 准备

30f20c71377baf14e7afaacba228f223.png

2.3.2 配置步骤

第一步:在/usr/local目录下,创建一个/redis/master-slave目录。

[root@node1 local]# mkdir -p redis/master-slave

第二步:在master-slave目录下,创建三个子目录6380、6381、6382

[root@node1 master-slave]# mkdir 6380 6381 6382

第三步:依次拷贝redis解压目录下的redis.conf配置文件,到这三个子目录中。

[root@node1 master-slave]# cp /usr/redis/redis-3.2.9/redis.conf ./6380/
[root@node1 master-slave]# cp /usr/redis/redis-3.2.9/redis.conf ./6381/
[root@node1 master-slave]# cp /usr/redis/redis-3.2.9/redis.conf ./6382/

第四步:进入6380目录,修改redis.conf,

[1] 将bind注释掉。
[2] 关闭保护模式。
[3] 并把port端口修改成6380。

36c142269ebd4733a6bdc9f1aa037dd1.png

bfd69eaab84258137ca784de5561898c.png

5c1df230435a256573da624c0eb712c3.png

第五步:进入6381目录,修改redis.conf。

[1] port端口改成6381。
[2] 开启主从复制模式。

e8acc424ca9fde83b468783702f91f7e.png

ca793e0b910d426a640cac282f03ce50.png

第六步:进入6382目录,修改redis.conf,

[1] port端口改成6382。
[2] 开启主从复制模式。

07c73197aea95d8ceb88f07b1087c327.png

ca793e0b910d426a640cac282f03ce50.png

2.3.3 测试

第一步:打开三个putty窗口,在每一个窗口中,启动一个redis节点。查看日志输出。(不要改成后台模式启动,看不到日志,不直观)。

[root@node1 master-slave]# cd ./6380 && redis-server ./redis.conf
[root@node1 master-slave]# cd ./6381 && redis-server ./redis.conf
[root@node1 master-slave]# cd ./6382 && redis-server ./redis.conf

3e9430b8de8af651d8661e0f46e3adc8.png

第二步:另外再打开两个putty窗口,分别登陆Master和Slave。

[root@node1 ~]# redis-cli -p 6380
[root@node1 ~]# redis-cli -p 6381

第三步:在Slave上,进行读写操作,操作成功

127.0.0.1:6380> set user:name zs
OK
127.0.0.1:6380> get user:name
"zs"
127.0.0.1:6380>

第四步:在Slave上

**读操作执行成功,并且成功从6380上同步了数据

[root@node0719 ~]# redis-cli -p 6381
127.0.0.1:6381> get user:name
"zs"

**写操作执行失败(从节点,只能读,不能写)

127.0.0.1:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值