首页 > 数据库 >redis cluster三主六从 redis三主三从集群搭建

redis cluster三主六从 redis三主三从集群搭建

时间:2023-09-20 14:48:05浏览次数:33  
标签:三主三 redis 三主六 cluster 集群 conf 服务器 节点

转自:https://blog.51cto.com/u_16099166/6885197

一、下载安装
二、本文架构(三台服务器,每台部署两个节点,主从同步,生产最好是部署六台服务器):

 三、进入redis安装目录,复制redis.conf文件,建立从节点配置文件

1 #进入redis安装目录
2 cd redis
3 
4 #复制redis.conf文件
5 cp redis.conf redis-slave.conf
6 
7 #编辑主从配置文件
8 vim redis.conf

编辑内容#集群配置

 1 #开启集群模式
 2 cluster-enabled yes
 3 
 4 #超时时间,超时15s 则认为master宕机,随后主备切换
 5 cluster-node-timeout 15000
 6 
 7 #每一个节点需要有一个配置文件。每个节点处于集群的角色都需要告知其他所有节点,彼此知道,这个文件用于存储集群模式下的集群状态等信息,这个文件是由redis自己维护,我们不用管。如果你要重新创建集群,那么把这个文件删了就行。
 8 #根据你启用的节点来命名,最好和端口保持一致
 9 cluster-config-file nodes-6380.conf
10 
11 
12 #节点配置
13 
14 #6380,跟端口保持一致
15 pidfile "/var/run/redis_6380.pid"
16 
17 #因为主从在同一台服务器,所以rdb最好修改分开存储(6台服务器的话可以不修改)
18 dbfilename "dump-slave.rdb"
19 
20 #绑定当前服务器的IP,提供远程访问
 1 bind 0.0.0.0 -::1
 2 
 3 # redis启动端口
 4 port 6380
 5 
 6 # 开启线程守护,后台启动
 7 daemonize yes
 8 
 9 #关闭保护模式,可以远程访问redis
10 protected-mode no
11 
12 #开启AOF日志
13 appendonly yes
14 
15 #设置你的密码,当然你也可以不设置,直接注释掉,那么你的redis在关闭保护模式的情况下,任何人都可以进行操作了.
16 masterauth password  #连接从机redis密码
17 requirepass password  #本机redis密码

启动主从节点

1 #启动主节点
2 nohup ./bin/redis-server ./redis.conf &
3 
4 #启动从节点
5 nohup ./bin/redis-server ./redis-slave.conf &

启动后查看运行状态,可看到redis是集群模式启动

 另外两台服务器同样的操作即可

四、启动集群

前面只是把redis服务当做集群模式启动,但是他们每台服务器之间还并不知道,所以我们需要给他建立连接关系

注:现在所有节点都是master节点,没有从节点

#创建集群,cluster-replicas 1:主节点和从节点比例为1,1-3为主,4-6为从,这也是最经典用的最多的集群模式

1 #创建集群,cluster-replicas 1:主节点和从节点比例为1,1-3为主,4-6为从,这也是最经典用的最多的集群模式
2 #如果设置了redis密码,需要加 -a your password
1 redis-cli --cluster create ip1:port1 ip2:port2 ip3:port3 ip4:port4 ip5:port5 ip6:port6 --cluster-replicas 1 -a 123456

执行后出现下图提示,输入yes:

 执行成功后会出现下图:

 三台master服务器会分槽,也就是slots[xxx-xxx],redis默认有16383个槽,会自动均分给每个服务器;slave从服务器不会分配槽

进入redis-cli,查看集群常用命令:

 1 #集群模式进入redis-cli, -c 代表集群模式 -a 代表redis密码
 2 redis-cli -h [ip] -p [pord] -c -a [password]
 3 
 4 #打印集群的信息
 5 cluster info 
 6 
 7 #列出集群当前已知的所有节点( node),以及这些节点的相关信息。
 8 节点(主从关系可以从这里看出来)
 9 cluster nodes
10 
11 #查看当前登录的redis的信息
12 info replication

执行后如果出现下面的异常:

 1 # 1、结束所有redis进程;
 2 ps -ef|grep redis
 3 
 4 kill -9 id
 5 
 6 2、删除redis安装目录下rdb、nodes.conf文件删除 
 7 rm nodes-6379.conf 
 8 rm dump.rdb
 9 
10 3、重启redis,然后启动集群即可

模拟某master挂掉,验证从节点是否会替换,配置文件我们设置的是15秒

某master挂掉后,redis集群变为不可用状态,等从节点转为master节点后恢复正常使用;具体步骤和日志自己模拟下就行了,不详细解说了

等挂掉的master重启后,会自动变为从节点。

如果主从同时挂掉,集群也就挂掉了。

学无止境...

标签:三主三,redis,三主六,cluster,集群,conf,服务器,节点
From: https://www.cnblogs.com/gzy2016Blog/p/17717268.html

相关文章

  • redis三主三从哨兵模式 redis三主三从集群
    转自:https://blog.51cto.com/u_16213559/7033634conf复制/usr/local/src/redis-6.2.6文件夹下redis.conf文件到/usr/local/src/master-slave文件夹中命名为redis6381.conf1#允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不......
  • 解决安装VS2022时,出现未能安装包"Microsoft.VisualCpp.Redist.14,version=14.32.31332
    解决安装VS2022时,出现未能安装包"Microsoft.VisualCpp.Redist.14,version=14.32.31332,chip”=x86"问题描述之前安装过MSSQLServer和VS2022,但是后来又卸载了。现在重装VS2022出现两个报错:无法安装Microsoft.VisualCpp.Redist.14,version=14.32.31332,chip”=x86无法安装Micr......
  • redis和mysql的区别以及它们是如何配合使用的
    redis和mysql的区别:1、从类型上来说,mysql是关系型数据库,redis是缓存数据库。2、mysql用于持久化的存储数据到硬盘,功能强大,但是速度较慢。redis用于存储使用较为频繁的数据到缓存中,读取速度快。3、mysql和redis因为需求的不同,一般都是配合使用。mysql和redis的数据库类型,m......
  • Redis7 10大数据类型(Redis基数统计)
    一、概述用途:统计某个网站的UV,统计某个文章的UV什么是UVUniqueVisitor独立访客,一般理解为客户端ip用户搜索网站关键词的数量统计用户每天搜索不同词条个数去重复统计功能的基数估计算法,就是HyperLogLog基数是一种数据集,去重复后的真实个数案例case基数统计用户统计......
  • 基本环境安装 jdk,mq,redis,nginx
    JDK:解压安装包,命令为tar-zxvfjdk-8u381-linux-x64.tar.gz配置环境变量,使用vim命令(需要安装vim,安装命令为:yuminstallvim)修改/etc/profile文件,在文件末尾加入如下配置 JAVA_HOME=/usr/local/jdk8/jdk1.8.0_381 PATH=$JAVA_HOME/bin:$PATH重新加载profile文件,使更改的配置......
  • 详细解释一下redis的缓存击穿、缓存雪崩的原理,以及如何避免?
    缓存击穿和缓存雪崩是两种常见的缓存问题,它们会对系统性能和可用性产生负面影响。以下是对这两个问题的详细解释以及如何避免它们的方法:缓存击穿(CacheMiss)原理:缓存击穿是指在高并发的情况下,多个请求同时访问缓存,但缓存中不存在所需数据。这些请求会穿透缓存,直接访问底层数据库......
  • redisson 工具类
    importcom.alibaba.fastjson.JSON;importcom.juxiao.xchat.dao.room.dto.CallStatus;importcom.juxiao.xchat.manager.cache.redis.RedissonManager;importlombok.extern.slf4j.Slf4j;importorg.redisson.api.*;importorg.redisson.client.protocol.ScoredEntry;i......
  • Redis面试题
    Redis到底是多线程还是单线程Redis6.0版本之前的单线程指的是其网络I/O和键值对的读写是由一个线程完成的。多线程在Redis6.0中的引入是为了改善一些特定场景下的性能问题,特别是在大型多核系统上。Redis6.0引入了多个I/O线程,这些线程负责处理网络事件的监听和接收。主线程仍......
  • docker 部署redis
    docker部署redis,设置密码为root123sudodockerrun-p6379:6379--nameredis01-dredis:7.0.12-alpineredis-server--loglevelwarning--requirepassroot123使用官方可视化工具redisinsight登录,默认用户名default......
  • Redis缓存穿透,击穿,雪崩问题改如何解决?
    无论在开发过程中还是面试过程中,这三个问题总是被遇到。下面是各个问题的原因和解决方案。缓存穿透原因缓存穿透其实是缓存的单点问题,是指查询一个一定不存在的数据。如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到DB去查询,可能导致DB挂掉......