iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Redis高可用集群redis-cluster详解
  • 763
分享到

Redis高可用集群redis-cluster详解

2024-04-02 19:04:59 763人浏览 八月长安
摘要

哨兵模式主要解决了手动切换主从节点的问题 1 , 哨兵模式的缺陷 .主从节点切换的时候存在访问瞬断,等待时间较长, .只有一个master节点提供写,slave节点提供读,尽管写的效

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

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.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/1WkQPakbXstinzCxRiyM5MQ?pwd=1ud4 

提取码: 1ud4

从这个链接下载  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 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-cluster高可用集群内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Redis高可用集群redis-cluster详解

本文链接: https://www.lsjlt.com/news/143154.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语言怎么计算字符串长度
    在C语言中,可以使用内置的strlen()函数来计算字符串的长度。该函数位于string.h头文件中。以下是一个示例代码: #inc...
    99+
    2024-05-14
    c语言
  • c语言怎么判断三个数的大小
    可以通过比较三个数之间的大小关系来判断它们的大小。以下是一个示例代码: #include <stdio.h> int ...
    99+
    2024-05-14
    c语言
  • c++排序函数sort怎么使用
    在C++中,使用sort函数对容器中的元素进行排序,可以按照默认的升序排列,也可以自定义排序规则。 下面是一个简单的例子,对一个ve...
    99+
    2024-05-14
    c++
  • c++中string的compare函数怎么使用
    在C++中,可以使用string的compare函数来比较两个string对象的大小。该函数的原型如下: int compare(c...
    99+
    2024-05-14
    c++
  • c++中string的compare函数有什么用
    c++中string的compare函数用于比较两个字符串的大小关系。该函数返回一个整数值,表示两个字符串的比较结果。 具体来说,如...
    99+
    2024-05-14
    c++
  • c++中print函数的功能有哪些
    在C++中,通常使用std::cout来进行输出操作,而不是使用print函数。std::cout是C++标准库中的一个输出流对象,...
    99+
    2024-05-14
    c++
  • c语言数据结构怎么使用
    在C语言中,数据结构可以通过定义结构体来实现。以下是一些常见的数据结构的使用方法示例: 链表: #include <std...
    99+
    2024-05-14
    c语言
  • c++中print函数的用法是什么
    在C++中没有内置的print函数,但可以使用cout来输出内容到控制台。cout是C++标准库中的一个输出流对象,可以使用<...
    99+
    2024-05-14
    c++
  • c++中concept的用法是什么
    在C++20中,Concept是一种新的语言特性,用于定义类型要求和约束。Concept可以被用来约束函数模板、类模板和普通函数的参...
    99+
    2024-05-14
    c++
  • c++中concept的作用是什么
    在C++中,concept的作用是定义一种通用的约束,用于限制模板参数的类型范围。通过使用concept,可以在编译时对模板参数进行...
    99+
    2024-05-14
    c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作