Redis主从复制详解
单机Redis存在的问题
无法故障转移 ,无法避免单点故障
磁盘空间的瓶颈
QPS瓶颈
Redis主从复制的作用
提供数据副本
扩展读性能
配置方法
通过命令
通过配置文件
演示
为方便演示,在一台服务器上搭建redis主从(生产上不会这样做),根据端口区分。
主库 6379
从库 6380
编辑配置文件
vi redis-6379.conf
#后台进程启动 daemonize yes #端口 port 6379 #日志文件名称 logfile "6379.log" #Redis工作目录 dir /server/redis_data #RDB文件名称 dbfilename dump-6379.rdb
vi redis-6380.conf
daemonize yes port 6380 logfile "6380.log" dir /server/redis_data #主库ip和端口 slaveof 10.238.162.34 6379 #从库只读 slave-read-only yes
启动redis服务
redis-server /usr/local/redis/config/redis-6379.conf redis-server /usr/local/redis/config/redis-6380.conf
查看复制状态
主库 [root@localhost config]# redis-cli -p 6379 info replication # Replication role:master connected_slaves:1 slave0:ip=10.238.162.34,port=6380,state=online,offset=1525,lag=0 master_repl_offset:1525 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:2 repl_backlog_histlen:1524 从库 [root@localhost config]# redis-cli -p 6380 info replication # Replication role:slave master_host:10.238.162.34 master_port:6379 master_link_status:up master_last_io_seconds_ago:4 master_sync_in_progress:0 slave_repl_offset:1595 slave_priority:100 slave_read_only:1 connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
查看日志观察复制过程
主库
从库
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
redis主从复制原理的深入讲解
前言 Redis持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障. 本文主要针对redis主从复制的原理进行了讲解,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 1.复制过程 2.数据间的同步 3.全量复制 4.部分复制 5.心跳 6.异步复制 1.复制过程 从节点执行 slaveof 命令. 从节点只是保存了
-
Redis两种持久化方案RDB和AOF详解
本文主要针对Redis 有两种持久化方案RDB和AOF做了详细的分析,希望我们整理的内容能够帮助大家对这个两种方案有更加深入的理解. Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File).如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结.本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识持久化. RDB 详解 RDB 是 Redis 默认的持久化方案.在指定的时间
-
redis学习之RDB、AOF与复制时对过期键的处理教程
生成RDB文件 在执行SAVE命令或者BGSAVE命令创建一个新的RDB文件时,程序会对数据库中的键进行检查,已过期的键不会被保存到新创建的RDB文件中. 举个例子,如果数据库中包含三个键k1.k2.k3,并且k2已经过期,那么当执行SAVE命令或者BGSAVE命令时,程序只会将k1和k3的数据保存到RDB文件中,而k2则会被忽略. 因此,数据库中包含过期键不会对生成新的RDB文件造成影响. 可参考rdb.c中函数rdbSave()函数源码: /* Iterate this DB writing
-
Redis教程(九):主从复制配置实例
一.Redis的Replication: 这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了.相信在阅读完这篇Blog之后你也可以轻松做到.这里我们还是先列出一些理论性的知识,后面给出实际操作的案例. 下面的列表清楚的解释了Redis Replication的特点和优势. 1). 同一个Master可以同步多个Slaves. 2). Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力.因此我们可以将Redis的R
-
Redis主从复制问题和扩容问题的解决思路
一.解决主从复制问题 当使用Redis作为存储引擎的时候,并且使用Redis读写分离,从机作为读的情况,从机宕机或者和主机断开连接都需要重新连接主机,重新连接主机都会触发全量的主从复制,这时候主机会生成内存快照,主机依然可以对外提供服务,但是作为读的从机,就无法提供对外服务了,如果数据量大,恢复的时间会相当的长.为了解决Redis主从Copy的问题,有如下两个解决方案: 主动复制所谓主动复制,就是业务层双写多个Redis,避开Redis自带的主从复制.但是自己干同步,就会产生一致性问题,为了保证
-
Redis全量复制与部分复制示例详解
Redis 主从复制 Redis 实例划分为主节点(master)和从节点(slave) 默认情况下,Redis都是主节点 每个从节点只能有一个主节点,而主节点可以同时具有多个从节点 复制的数据流是单向的,只能由主节点复制到从节点 slaveof 命令在使用时,可以运行期动态配置,也可以提前写到配置文件中 主从复制 步骤 详细描述 保存主节点信息 执行slaveof后从节点只保存主节点的地址信息便直接返回 主从建立socket连接 从节点(slave)内部通过每秒运行的定时任务维护复制相关逻辑,
-
CentoS6.5环境下redis4.0.1(stable)安装和主从复制配置方法
本文实例讲述了CentoS6.5环境下redis4.0.1(stable)安装和主从复制配置方法.分享给大家供大家参考,具体如下: 依赖环境 Centos 6.5 gcc-4.4.7:编译redis原文件 tcl-8.5.7:运行编译检测 1.编译redis #cd /usr/local #tar -zxvf redis-4.0.1.tar.gz #mv redis-4.0.1 redis #cd redis #make 运行编译测试make test需要tcl-8.5及以上 #yum inst
-
Redis主从复制详解
单机Redis存在的问题 无法故障转移 ,无法避免单点故障 磁盘空间的瓶颈 QPS瓶颈 Redis主从复制的作用 提供数据副本 扩展读性能 配置方法 通过命令 通过配置文件 演示 为方便演示,在一台服务器上搭建redis主从(生产上不会这样做),根据端口区分. 主库 6379 从库 6380 编辑配置文件 vi redis-6379.conf #后台进程启动 daemonize yes #端口 port 6379 #日志文件名称 logfile "6379.log" #Redis工作
-
spring集成redis cluster详解
客户端采用最新的jedis 2.7 1.maven依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.3</version> </dependency> 2.增加spring 配置 <bean name="genericObjectPoolConfig"
-
最详细的docker中安装并配置redis(图文详解)
一.找到一个合适的docker的redis的版本 可以去docker hub中去找一下 https://hub.docker.com/_/redis?tab=tags 二.使用docker安装redis sudo docker pull redis 安装好之后使用docker images即可查看 truedei@truedei:~$ truedei@truedei:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis
-
Redis中ServiceStack.Redis和StackExchange.Redis区别详解
目前Redis已经更新到了6.0.2,那目前StackExchange.Redis 和 ServiceStack.Redis 两个客户端有什么区别呢? StackExchange.Redis 客户端是开源免费,而ServiceStack.Redis目前我测试了4.0以上版本就有每个小时6000的限制.性能方面,对比测试,ServiceStack比StackExchange性能上高将近50%. 以上分别是5000条和10w条数据写入读入比对,我这是将ServiceStack解除了每小时6000条数
-
SpringBoot中对应2.0.x版本的Redis配置详解
properties格式: # REDIS (RedisProperties) # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=localhost # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.jedis.po
-
Redis安全策略详解
目录 缓存穿透 缓存击穿 缓存雪崩 布隆过滤器 基于布隆过滤器解决缓存穿透问题 缓存穿透 高并发情况下查询一个不存在的key 产生的背景(原因): 缓存穿透是指使用不存在的key进行大量的高并发查询,导致缓存无法命中,每次请求都要都要穿透到后端数据库查询,使得数据库的压力非常大,甚至导致数据库服务压死: 解决方案: 接口层实现api限流.用户授权.id检查等: 从缓存和数据库都取不到数据的话,一样将数据库空值放入缓存中,设置30s有效期避免使用同一个id对数据库攻击压力大: 布隆过滤器 缓存击穿
-
Golang分布式应用之Redis示例详解
目录 正文 分布式锁 运行测试 分布式过滤器 运行测试 分布式限流器 运行测试 其他 正文 Redis作是一个高性能的内存数据库,常被应用于分布式系统中,除了作为分布式缓存或简单的内存数据库还有一些特殊的应用场景,本文结合Golang来编写对应的中间件. 本文所有代码见github.com/qingwave/go… 分布式锁 单机系统中我们可以使用sync.Mutex来保护临界资源,在分布式系统中同样有这样的需求,当多个主机抢占同一个资源,需要加对应的“分布式锁”. 在Redis中我们可以通过s
-
Redis数据库安全详解
目录 前言 开放最小化很重要 认证不可少 防止管理员误操作也很重要 担心网络被监听? 开启TLS之旅吧 总结 前言 本篇文章基于的Redis 的环境为: redis_version:7.0.5 文档内容均为学习Redis 官方文档心得. Redis相信大家都或多或少都听说过吧,作为内存数据库的代表, 但是近些年Redis 被攻击的典范也是越来越多,我们将如何防护Redis 安全呢? 跟着我们的脚本,来看看这篇文章吧. 对于Redis而言,我们设置的方法大概有以下几种 通过redis.conf 设
-
CentOS6.4 安装Redis 教程详解
按照下面步骤依次执行 1.检查依赖,安装依赖 [root@ecs-3c46 ~]# whereis gcc gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz [root@ecs-3c46 ~]# whereis tc tc: /sbin/tc /usr/lib64/tc /usr/share/tc /usr/share/man/man8/tc.8.gz [root@ecs-3c46 ~]# w
-
centos7下mysql5.6的主从复制详解
一.mysql主从复制介绍 mysql的主从复制并不是数据库磁盘上的文件直接拷贝,而是通过逻辑的binlog日志复制到要同步的服务器本地,然后由本地的线程读取日志里面的sql语句,重新应用到mysql数据库中. mysql数据库支持单向,双向,链式级联,环状等不同业务场景的复制,一台服务器充当主服务器master,接收来自用户的更新,而一个或多个其他服务器充当从服务器slave,接收来自主服务器binlog文件的日志内容,解析出sql,更新到从服务器. 一主一从 (A -> B, A为主,B为从
随机推荐
- Vue2几种常见开局方式详解
- JS/jquery实现一个网页内同时调用多个倒计时的方法
- java生成excel报表文件示例
- oracle实现多行合并的方法
- python链接Oracle数据库的方法
- Javascript基础学习笔记(菜鸟必看篇)
- 浏览器复制插件zeroclipboard使用指南
- 提升Python程序运行效率的6个方法
- Python网络编程中urllib2模块的用法总结
- linux下mysql自动备份数据库与自动删除临时文件
- 基于jquery的仿百度搜索框效果代码
- python 参数列表中的self 显式不等于冗余
- jquery datatable后台封装数据示例代码
- java实现List中对象排序的方法
- Jquery实现跨域异步上传文件总结
- jQuery filter函数使用方法
- jQuery基于扩展实现的倒计时效果
- 全面解析Android中对EditText输入实现监听的方法
- java日期操作工具类(获取指定日期、日期转换、相隔天数)
- UTF8编码内的繁简转换的PHP类