redis主从、集群
redis sentinel哨兵实现redis高可用
一.redis主从
在同一台机器上部署主从:
主上的配置
配置文件:
/etc/redis.conf
关于和主从有关的具体配置
bind 127.0.0.1
port 6379
pidfile /var/run/redis_6379.pid
logfile "/var/log/redis_6379.log"
dir /data/redis
从上的配置
配置文件:
cp /etc/redis.conf /etc/redis2.conf
具体需要更改的配置:
port 6380
pidfile /var/run/redis_6380.pid
logfile "/var/log/redis_6380.log"
dir /data/redis2
还需要增加一行(指定主):
replicaof 127.0.0.1 6379 #我的redis是5以上
或者
Slaveof 127.0.0.1 6379 #5以下的
然后,创建从的数据目录:
mkdir /data/redis2
启动主从:
redis-server /etc/redis.conf
redis-server /etc/redis2.conf
查看:
netstat -lnpt |grep redis
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 6669/redis-server 1
tcp 0 0 127.0.0.1:6380 0.0.0.0:* LISTEN 10022/redis-server
进入从redis:
redis-cli -h 127.0.0.1 -p 6380
关于主从的补充:
如果主上配置了密码:
requirepass ligen #ligen是密码
那么从上也需要进行相应的配置:
masterauth ligen #后面是密码
从上默认只读:
replica-read-only yes
redis主从事先不用同步,设置之后自动同步。
二.redis集群
redis集群是从3.0之后才支持的架构,官方称之为cluster。
redis集群有什么用?
一个redis,数据量大的话太过于臃肿,超过设备读写能力将会十分缓慢,而且单一设备不安全,容易导致丢失。
什么是redis集群?
redis集群是有多个redis节点组成。每个redis节点有主从redis构成,其中主只有一个,从可以有多个,而且从一般只做备份。多个redis节点共享数据,所有的redis数据集合才是完整的。
redis集群的特点:
它不支持同时处理多个键,当并发量很高的时候,同时创建键值会降低性能且导致不可预测是行为。redis集群根据算法均匀把键均匀的分布在各个节点上。支持在线增加、删除节点。客户端可以连任何一个节点进行读写。
redis集群配置搭建:
环境准备,准备三台机器,每台机器两个节点一主一从(需要把前面的Slaveof 127.0.0.1 6379 从配置删除),总共6个redis节点:
192.168.247.160:6379 master
192.168.247.160:6380 slave
192.168.247.170:6379 master
192.168.247.170:6380 slave
192.168.247.180:6379 master
192.168.247.180:6380 slave
额外用一台机器用来集群搭建好之后的增加和删除节点:
192.168.247.160:6381 master
192.168.247.160:6382 slave
环境准备好后,开始集群配置:
其中两台的配置如下,其他改端口和文件名就可以:
bind 192.168.247.160
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
dir /var/redis_6379
appendonly yes
#开启集群
cluster-enabled yes
#集群的配置文件,首次启动会自动创建
cluster-config-file nodes-6379.conf
#集群节点连接超时时间,15秒
cluster-node-timeout 15000
bind 192.168.247.160
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
dir /var/redis_6380
appendonly yes
#开启集群
cluster-enabled yes
#集群的配置文件,首次启动会自动创建
cluster-config-file nodes-6380.conf
#集群节点连接超时时间,15秒
cluster-node-timeout 15000
如果开启了firewalld,所有机器都需要增加如下规则:
firewall-cmd --permanent --add-port 6379-6380/tcp
firewall-cmd --permanent --add-port 16379-16380/tcp
firewall-cmd --reload
构建集群:
redis-cli --cluster create 192.168.247.160:6379 192.168.247.160:6380 192.168.247.170:6379 192.168.247.170:6380 192.168.247.180:6379 192.168.247.180:6380 --cluster-replicas 1
显示:
注意:如果提示如下错误
则是由于上次redis集群没有配置成功,生成了每个节点的配置文件和db的备份文件,所以才会产生这个错误。
所以办法就是删除redis数据目录文件。
redis集群增加节点
增加主节点192.168.247.160:6381 master
首先配置好配置文件:
bind 192.168.247.160
port 6381
daemonize yes
pidfile /var/run/redis_6381.pid
dir /data/redis_6381
appendonly yes
#开启集群
cluster-enabled yes
#集群的配置文件,首次启动会自动创建
cluster-config-file nodes-6381.conf
#集群节点连接超时时间,15秒
cluster-node-timeout 15000
创建目录:
mkdir /data/redis_6381
启动:
redis-server /etc/redis3.conf
将6381增加到集群中:
redis-cli --cluster add-node 192.168.247.160:6381 192.168.247.160:6380
#命令格式:6381 为要添加的节点
#6380 为已经存在的节点
#此时该节点只是作为主节点添加到了集群中,但是没有进行分片,是不可存储数据的,如果要存储数据,需要进行分片操作。
给6381节点分配槽:
redis-cli --cluster reshard 192.168.247.160:6381
查看节点:
为6381添加从节点
配置配置文件,跟之前类似,只需要修改端口和文件名就行。
启动之后,执行:
redis-cli --cluster add-node 192.168.247.160:6382 192.168.247.160:6381 --cluster-slave --cluster-master-id cb03a50941a8818e2f7bf4acfbbc68c4dbaf97e8
#添加从且指定主
#cb03a50941a8818e2f7bf4acfbbc68c4dbaf97e8 是master的id
redis集群操作
连接集群:
可以在任何一个节点上去连接集群,创建键值redis将根据算法分到主节点上
redis-cli -c -h 192.168.247.160 -p 6380
说明:在创建key的过程中,它会把不同的key分配到不同的slot中,即使我们登录到了129:6380,但在写入数据时,它会选择其他节点。
查看集群情况:
redis-cli --cluster check 192.168.247.180:6379 #任意节点都可以查看
删除集群节点:
redis-cli --cluster del-node 192.168.247.160:6382 88e3937e0e468ef8417ce47ad6e5aa5cfeb29b42
#这里必须是没有槽的节点,所以必须先移除槽,否则报错 被删除的node重启后,依然记得集群中的其它节点,这是需要执行cluster forget nodeid来忘记其它节点
删除主节点:
首先要归还槽,过程和分配槽类似,只不过是归还:
redis-cli --cluster reshard 192.168.247.160:6381
删除主节点,和删除从一样:
redis-cli --cluster del-node 192.168.247.160:6381 cb03a50941a8818e2f7bf4acfbbc68c4dbaf97e8
redis主从、集群相关推荐
- Redis 主从集群搭建及哨兵模式配置
Redis 主从集群搭建及哨兵模式配置 最近搭建了redis集群及哨兵模式,为方便以后查看特此记录下来: 1.Redis安装 2.主从架构 2.1 Redis主从架构图 2.2Redis主从结构搭建 ...
- Redis主从集群搭建及其原理
Redis主从集群搭建及其原理 1.Redis主从 1.1.搭建主从架构 1.2.准备实例和配置 1.3.启动 1.4.开启主从关系 1.5.测试 2.主从数据同步原理 2.1.全量同步 2.2.增量 ...
- redis主从集群搭建及容灾部署(哨兵sentinel)
Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 ...
- redis主从集群搭建eclipse_【Redis】Redis 主从模式搭建
主从模式介绍 Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据 ...
- 分布式缓存——Redis高级彻底搞懂(Redis原理+主从+集群)
-- 基于Redis集群解决单机Redis存在的问题 一.Redis持久化 Redis有两种持久化方案: RDB持久化 AOF持久化 1.RDB持久化 RDB全称Redis Database Back ...
- CentOS7 安装Redis Cluster集群
上一篇中已经讲到了如何安装单击版Redis,这一篇我们来说下如何安装Cluster,关于哨兵模式这里我就不写文章安装了,有兴趣的同学可以自己去研究,哨兵模式可以在主从模式下在创建三台机器的哨兵集群监控 ...
- 七、redis分布式集群
文章目录 一.redis持久化 1.1.RDB持久化 1.1.1.执行时机 1.1.2.RDB原理 1.1.3.小结 1.2.AOF持久化 1.2.1.AOF原理 1.2.2.AOF配置 1.2.3. ...
- redis分布式集群环境搭建
redis 分布式集群可分为主从集群.哨兵集群.分片集群,本片文章我们就来分别介绍这三种集群环境的搭建. 本次搭建环境为 Linux 虚拟机系统. 在搭建 redis集群之前,需要先在 linux 系 ...
- redis 主从配置_Laravel 使用Redis缓存集群,主从集群配置就这么简单?
前一节我们安装了Redis主从复制,在主从复制中,完成了数据的同步,master宕机后,可以切换到另外一台redis服务器进行读取和写入,完全没有不影响业务切换. 这一节我们讲解,Laravel中使用 ...
- 基于Docker搭建Redis集群(主从集群)
最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...
最新文章
- python —— 装饰器
- 最小二乘法矩阵微分偏导法证明
- check box 如何调整字体大小_CSS中关于box-sizing你可能需要知道的小知识
- 【原】WPF 主界面布局中DockPanel的停靠与默认填充
- 华为内核已经升级到鸿蒙,安卓再见!华为升级全力转向鸿蒙OS
- Win10 64位安装SQL2000(个人版)
- 【BZOJ5093】图的价值
- sklearn库各个算法学习笔记
- 极域电子书包课堂管理系统怎么控屏_极域电子教室使用说明
- 战旗html5播放器为什么卡顿,视频站启用html5播放器
- Spark Sql编程
- php+网络测速,网络测速步骤
- 入门级测试Kotlin实现PopWindow弹窗代码
- cmd如何远程重启服务器
- 2020-09-22
- CAD看图软件中怎么镜像图形?CAD镜像应用实例
- 使用 Learner Lab - 使用 Lambda 转换图片为 base64 格式
- 再见, Python, 你好, Julia
- android eclipse计算器布局,请教eclipse android 简单计算器入门 相关问题。
- 17蓝桥javaB 等差素数列
热门文章
- 论文精读:Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks
- Error: Can't find Python executa Error: Can'tble python, you can set the PYTHON env variable.解决办法
- Errors报错记录
- c#上位机开发(三)——简易串口发送数据
- 使用Linux Deploy在android手机上部署Ubuntu
- c++读取mnn模型
- 什么是自动化测试框架?这就是自动化测试框架。
- YOLOv5实现目标识别全流程【超级详细!】
- GraphSAGE 源代码 -- 分图训练
- easyexcel Create workbook failure 问题解决