Redis高可用集群redis-cluster详解


Posted in Redis onMarch 20, 2022

哨兵模式主要解决了手动切换主从节点的问题

1 , 哨兵模式的缺陷

.主从节点切换的时候存在访问瞬断,等待时间较长,

.只有一个master节点提供写,slave节点提供读,尽管写的效率是10万/秒,在电商大促时,写的压力全部集中在master节点上。

.master节点的内存不能设置的太大,否则持久化文件过大,影响主从同步

2,redis-cluster集群模式

Redis Cluster是社区版推出的Redis分布式集群解决方案,主要解决Redis分布式方面的需求,比如,当遇到单机内存,并发和流量等瓶颈的时候,Redis Cluster能起到很好的负载均衡的目的。

Redis Cluster集群节点最小配置6个节点以上(3主3从),其中主节点提供读写操作,从节点作为备用节点,不提供请求,只作为故障转移使用。

优点:

1.没有中心架构,有多个主节点,每个主节点都可以读写

2,数据按照slot分布存储在多个节点,节点之间数据共享,可以动态调整数据分布

3,可线性拓展到1000多个节点,节点可以动态新增和删除

Redis高可用集群redis-cluster详解

redis-cluster集群安装

1,在redis安装目录下/opt/redis-4.0.6/创建redis-cluster目录,在该目录下面再创建6个目录

,分别命名8001,8002,8003,8004,8005,8006。文件结构如下

Redis高可用集群redis-cluster详解

Redis高可用集群redis-cluster详解

2, 将redis安装目录/usr/local/redis-4.0.6下的redis.conf文件拷贝至8001文件夹,并修改以下配置:

daemonize yes #开启后台运行
port 8001 #工作端口
bind 172.16.0.15 #绑定机器的内网IP,一定要设置呀老铁,不要用127.0.0.1
dir /usr/local/redis-cluster/8001/ #指定工作目录,rdb,aof持久化文件将会放在该目录下,不同实例一定要配置不同的工作目录
cluster-enabled yes #启用集群模式
cluster-config-file nodes-8001.conf #生成的集群配置文件名称,集群搭建成功后会自动生成,在工作目录下
cluster-node-timeout 5000 #节点宕机发现时间,可以理解为主节点宕机后从节点升级为主节点时间
appendonly yes #开启AOF模式
pidfile /var/run/redis_8001.pid #pid file所在目录

3. 把8001文件夹下的redis.conf文件拷贝到其他5个目录,并重新修改port 、dir、cluster-config-file 三个属性,这里可以使用sed命令快速修改

[root@VM_0_15_centos redis-cluster]# sed -i 's/8001/8002/g' 8002/redis.conf
[root@VM_0_15_centos redis-cluster]# sed -i 's/8001/8003/g' 8003/redis.conf
[root@VM_0_15_centos redis-cluster]# sed -i 's/8001/8004/g' 8004/redis.conf
[root@VM_0_15_centos redis-cluster]# sed -i 's/8001/8005/g' 8005/redis.conf
[root@VM_0_15_centos redis-cluster]# sed -i 's/8001/8006/g' 8006/redis.conf

4, 由于创建集群需要用到redis-trib这个命令,它依赖Ruby和RubyGems,因此我们要先安装一下

  下载链接:https://pan.baidu.com/s/1kWsf3Rh 密码:n3pc
从这个链接下载  ruby-2.3.1.tar.gz   和  redis-3.3.0.gem
  tar -zxvf ruby-2.3.1.tar.gz 
  a,  cd ruby-2.3.1
  b,  ./configure -prefix=/opt/ruby
  c,  make && make install   //过程会有点慢,大概5-10分钟
  d,  然后gem install -l redis-3.3.0.gem  //若没有gem需要安装yum install gem -y

Redis高可用集群redis-cluster详解

5 , Ruby安装完成之后,我们开始启动6个节点

[root@VM_0_15_centos redis-cluster]# ./src/redis-server redis-cluster/8001/redis.conf
[root@VM_0_15_centos redis-cluster]# ./src/redis-server redis-cluster/8002/redis.conf
[root@VM_0_15_centos redis-cluster]# ./src/redis-server redis-cluster/8003/redis.conf
[root@VM_0_15_centos redis-cluster]# ./src/redis-server redis-cluster/8004/redis.conf
[root@VM_0_15_centos redis-cluster]# ./src/redis-server redis-cluster/8005/redis.conf
[root@VM_0_15_centos redis-cluster]# ./src/redis-server redis-cluster/8006/redis.conf

6, 查看redis集群启动情况

[root@yangxXNJ-master ~]# ps -ef|grep redis
root      28079   6654  0 22:23 pts/0    00:00:00 ./redis-server *:6379
root      28238      1  0 22:24 ?        00:00:04 ./src/redis-server 192.168.145.4:8001 [cluster]
root      28517      1  0 22:25 ?        00:00:04 ./src/redis-server 192.168.145.4:8002 [cluster]
root      28591      1  0 22:26 ?        00:00:04 ./src/redis-server 192.168.145.4:8003 [cluster]
root      28662      1  0 22:26 ?        00:00:04 ./src/redis-server 192.168.145.4:8004 [cluster]
root      28701      1  0 22:26 ?        00:00:04 ./src/redis-server 192.168.145.4:8005 [cluster]
root      28718      1  0 22:26 ?        00:00:04 ./src/redis-server 192.168.145.4:8006 [cluster]

   6个节点已经正常启动

7,[root@VM_0_15_centos redis-4.0.6]# ./src/redis-trib.rb create --replicas 1 192.168.145.4:8001 192.168.145.4:8002 192.168.145.4:8003 192.168.145.4:8004 192.168.145.4:8005 192.168.145.4:8006

Redis高可用集群redis-cluster详解

Redis高可用集群redis-cluster详解

到此这篇关于Redis高可用集群redis-cluster的文章就介绍到这了,更多相关redis-cluster高可用集群内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
浅谈redis五大数据结构和使用场景
Apr 12 Redis
详解RedisTemplate下Redis分布式锁引发的系列问题
Apr 27 Redis
Redis6.0搭建集群Redis-cluster的方法
May 08 Redis
浅谈Redis中的RDB快照
Jun 29 Redis
Redis读写分离搭建的完整步骤
Sep 14 Redis
解决Redis启动警告问题
Feb 24 Redis
Redis之RedisTemplate配置方式(序列和反序列化)
Mar 13 Redis
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
Mar 16 Redis
Redis监控工具RedisInsight安装与使用
Mar 21 Redis
Redis实战高并发之扣减库存项目
Apr 14 Redis
Redis特殊数据类型bitmap位图
Jun 01 Redis
Redis基本数据类型Set常用操作命令
Jun 01 Redis
使用Redis实现点赞取消点赞的详细代码
Mar 20 #Redis
Redis集群节点通信过程/原理流程分析
redis数据一致性的实现示例
高并发下Redis如何保持数据一致性(避免读后写)
Mar 18 #Redis
redis击穿 雪崩 穿透超详细解决方案梳理
Redis调用Lua脚本及使用场景快速掌握
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
You might like
十天学会php之第八天
2006/10/09 PHP
PHP4实际应用经验篇(8)
2006/10/09 PHP
php 常用算法和时间复杂度
2013/07/01 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
为Extjs加加速(javascript加速)
2010/08/19 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
JavaScript字符串检索字符的方法
2017/06/23 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Python根据服务获取端口号的方法
2019/09/25 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
2020/04/20 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
文言文形式的学生求职信
2013/12/03 职场文书
学校消防安全责任书
2014/07/23 职场文书
授权收款委托书
2014/09/23 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
公务员处分决定书
2015/06/25 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书