Redis高可用集群redis-cluster详解
哨兵模式主要解决了手动切换主从节点的问题
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-cluster集群安装
1,在redis安装目录下/opt/redis-4.0.6/创建redis-cluster目录,在该目录下面再创建6个目录
,分别命名8001,8002,8003,8004,8005,8006。文件结构如下
文章图片
文章图片
2, 将redis安装目录/usr/local/redis-4.0.6下的redis.conf文件拷贝至8001文件夹,并修改以下配置:
daemonize yes #开启后台运行port 8001 #工作端口bind 172.16.0.15 #绑定机器的内网IP,一定要设置呀老铁,不要用127.0.0.1dir /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
文章图片
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 redisroot2807966540 22:23 pts/000:00:00 ./redis-server *:6379root2823810 22:24 ?00:00:04 ./src/redis-server 192.168.145.4:8001 [cluster]root2851710 22:25 ?00:00:04 ./src/redis-server 192.168.145.4:8002 [cluster]root2859110 22:26 ?00:00:04 ./src/redis-server 192.168.145.4:8003 [cluster]root2866210 22:26 ?00:00:04 ./src/redis-server 192.168.145.4:8004 [cluster]root2870110 22:26 ?00:00:04 ./src/redis-server 192.168.145.4:8005 [cluster]root2871810 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-cluster高可用集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 使用Redis实现点赞取消点赞的详细代码
- python|Python高效实现滑块验证码自动操纵
- 机器学习|机器学习_pytorch_高级神经网络结构_AutoEncoder自编码
- 2022高频前端面试题合集|2022高频前端面试题——HTML篇
- 如何利用一篇高质量软文文案进行网络推广|媒介启航
- 三高Mysql|三高Mysql - Inndb存储引擎和索引介绍
- Java学习日记|Java学习日记14——Lambda表达式以及一些高级语法
- Redis|缓存穿透 缓存击穿 缓存雪崩 这三者是什么 如何处理
- linux|Linux 安装项目软件 MySql Redis Nginx RabbitMQ Docker 轻松 详细
- android|备战金三银四,阿里内部这份《2022年Android中高级面试题汇总》我先冲了~