Redis高可用之主从复制、哨兵、cluster集群(下)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 一、Redis 高可用1.1 什么是高可用在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。

实验步骤:

7.1 所有节点安装Redis

参考上文第三节

7.2 开启集群功能

修改任意一台服务器配置文件,再通过scp命令传给其他主机。

cd /opt/redis-5.0.7/
vim redis.conf
......
bind 192.168.121.10                       #69行,修改为监听自己的物理网卡IP
protected-mode no                         #88行,修改为no,关闭保护模式
port 6379                                 #92行,redis默认监听端口
daemonize yes                             #136行,开启守护进程,以独立进程启动
appendonly yes                            #700行,修改为yes,开启AOF持久化
cluster-enabled yes                       #832行,取消注释,开启群集功能
cluster-config-file nodes-6379.conf       #840行,取消注释,群集名称文件设置
cluster-node-timeout 15000                #846行,取消注释,群集超时时间设置
#将文件传给另外5个节点,之后每个节点要修改监听地址为自己的IP
[root@localhost redis-5.0.7]# scp redis.conf 192.168.121.20:`pwd`
[root@localhost redis-5.0.7]# scp redis.conf 192.168.121.30:`pwd`
[root@localhost redis-5.0.7]# scp redis.conf 192.168.121.40:`pwd`
[root@localhost redis-5.0.7]# scp redis.conf 192.168.121.50:`pwd`
[root@localhost redis-5.0.7]# scp redis.conf 192.168.121.60:`pwd`
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


将配置文件传给另外5个节点:

网络异常,图片无法展示
|


之后每个节点要修改监听地址为自己的IP:

网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


7.3 所有节点启动redis服务

cd /opt/redis-5.0.7/
redis-server redis.conf   #启动redis节点
复制代码


网络异常,图片无法展示
|


7.4 启动集群

在任意一个节点启动集群即可。

redis-cli --cluster create 192.168.121.10:6379 192.168.121.20:6379 192.168.121.30:6379 192.168.121.40:6379 192.168.121.50:6379 192.168.121.60:6379 --cluster-replicas 1
#六个主机分为三组,三主三从,前面的做主节点后面的做从节点下免交互的时候需要输入yes才可以创建 "-replicas 1"表示每个主节点有一个从节点
#前三台为Master,后三台为Slave
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


7.5 测试集群

#加-c参数,节点之间就可以互相跳转  
redis-cli -h 192.168.121.10 -p 6379 -c 
#查看节点的哈希槽编号范围
cluster slots    
#赋值
set name yuji
#查看键的哈希槽编号  
cluster keyslot 键名
[root@mas ~]# redis-cli -h 192.168.121.10 -p 6379 -c
192.168.121.10:6379> cluster slots      #查看节点的哈希槽编号范围
1) 1) (integer) 10923         #第一对主从的哈希槽编号范围
   2) (integer) 16383
   3) 1) "192.168.121.30"     #主节点
      2) (integer) 6379
      3) "5f117a3e204d1d6f6dc924ad8b39034a8e9f3261"
   4) 1) "192.168.121.40"     #从节点
      2) (integer) 6379
      3) "4a05a086eec06fa4da58b15512d1c81184bc5ee5"
2) 1) (integer) 5461          #第二对主从的哈希槽编号范围
   2) (integer) 10922
   3) 1) "192.168.121.20"     #主节点
      2) (integer) 6379
      3) "3008bba29dfbf342bc448ba3062b0a331c8d009e"
   4) 1) "192.168.121.60"     #从节点
      2) (integer) 6379
      3) "ee61a4709d6420bb540b2c28218fdd2dfe358b7a"
3) 1) (integer) 0             #第三对主从的哈希槽编号范围
   2) (integer) 5460
   3) 1) "192.168.121.10"     #主节点
      2) (integer) 6379
      3) "d1ddb554b3edaebefa6672b2f1f8171393e1f7f3"
   4) 1) "192.168.121.50"     #从节点 
      2) (integer) 6379
      3) "71e1f705ce01ca31ab16fa3cf07d7e6cbfab5978"
192.168.121.10:6379>
#在10节点新建name键,会自动跳转到20节点进行存放     
192.168.121.10:6379> set name yuji  
-> Redirected to slot [5798] located at 192.168.121.20:6379
OK
192.168.121.20:6379> cluster keyslot name    #查看name键的哈希槽编号
(integer) 5798
192.168.121.20:6379> quit       #退出数据库
[root@mas ~]# redis-cli -h 192.168.121.10 -p 6379 -c     #重新登录10节点
192.168.121.10:6379> keys *     #10节点中没有name键
(empty list or set)
192.168.121.10:6379> get name    #查看name键的值,会根据键的哈希槽编号自动跳转到20节点进行获取
-> Redirected to slot [5798] located at 192.168.121.20:6379
"yuji"
192.168.121.20:6379>            #已跳转到20节点
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


总结

三种模式需要注意修改不同的配置文件。

主从复制:vim /etc/redis/6379.conf

哨兵模式:vim /opt/redis-5.0.7/sentinel.conf

cluster集群:vim /opt/redis-5.0.7/redis.conf

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
16天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
228 0
|
1天前
|
存储 NoSQL 算法
Redis 搭建分片集群
Redis 搭建分片集群
|
3天前
|
存储 缓存 运维
软件体系结构 - 缓存技术(5)Redis Cluster
【4月更文挑战第20天】软件体系结构 - 缓存技术(5)Redis Cluster
136 10
|
15天前
|
运维 NoSQL 算法
Java开发-深入理解Redis Cluster的工作原理
综上所述,Redis Cluster通过数据分片、节点发现、主从复制、数据迁移、故障检测和客户端路由等机制,实现了一个分布式的、高可用的Redis解决方案。它允许数据分布在多个节点上,提供了自动故障转移和读写分离的功能,适用于需要大规模、高性能、高可用性的应用场景。
16 0
|
6月前
|
存储 NoSQL 网络安全
Redis安装(单机、主从、哨兵、集群)
Redis安装(单机、主从、哨兵、集群)
132 1
|
4月前
|
缓存 NoSQL 应用服务中间件
分布式缓存之Redis(持久化、主从、哨兵、分片集群)
分布式缓存之Redis(持久化、主从、哨兵、分片集群)
|
9月前
|
存储 负载均衡 监控
Redis极简入门-Redis集群搭建-主从-哨兵-Cluster集群
Redis为什么做集群 采用Redis集群方案解决单点故障问题 对于高并发读写请求,采用集群方案提升Redis作业能力 处理大量数据,多个Redis节点实现数据的分布式存储
66 0
|
9月前
|
监控 NoSQL Redis
Redis主从、哨兵、 Cluster集群一锅端! 1
Redis主从、哨兵、 Cluster集群一锅端!
|
11月前
|
存储 消息中间件 缓存
Redis 7 事务、管道、发布订阅、主从、哨兵、集群
Redis 7 事务、管道、发布订阅、主从、哨兵、集群
|
存储 NoSQL 网络安全
Redis安装(单机、主从、哨兵、集群)
Redis安装(单机、主从、哨兵、集群)
220 0
Redis安装(单机、主从、哨兵、集群)

热门文章

最新文章