redis主从复制故障恢复及持久化的意义


服务器配置:(centos7)

服务器IP 安装组件 节点 备注
192.168.27.210 redis-5.0.5 master 一主两从架构
192.168.26.112 redis-5.0.5 slave
192.168.26.206 redis-5.0.5 slave

最新版下载地址到各结点:Wget http://download.redis.io/releases/redis-5.0.5.tar.gz

解压压缩包并配置:


切换用户(生产环境少用ROOT用户操作)
[[email protected] data]$ sudo chown -R jerry.root redis-5.0.5

Cd /data/redis-5.0.5/src
make
192.168.27.210配置文件:vim /data/redis-5.0.5/redis-m-7000.conf
bind 0.0.0.0
port 7000
logfile "7000.log"
dbfilename "dump-7000.rdb"
daemonize yes
rdbcompression yes

192.168.26.112配置:
Cd /data/redis-5.0.5/src
make

[[email protected] redis-5.0.5]$ vim /data/redis-5.0.5/redis-s-7000.conf

bind 0.0.0.0
port 7000
logfile "7000.log"
dbfilename "dump-7000.rdb"
daemonize yes
rdbcompression yes
slaveof 192.168.27.210 7000

192.168.26.206配置:
Cd /data/redis-5.0.5/src
make

bind 0.0.0.0
port 7000
logfile "7000.log"
dbfilename "dump-7000.rdb"
daemonize yes
rdbcompression yes
slaveof 192.168.27.210 7000
分别启动各结点:
[[email protected] src]$ ./redis-server ../redis-m-7000.conf

[[email protected] src]$ sudo ln -s /data/redis-5.0.5/src/redis-server /usr/bin/redis-server
[[email protected] src]$ redis-server ../redis-s-7000.conf

[[email protected] src]$ sudo ln -s /data/redis-5.0.5/src/redis-server /usr/bin/redis-server
[[email protected] src]$ redis-server ../redis-s-7000.conf
[[email protected] src]$ ss -tnl

看下三台服务器主从状态信息:

接着我们创建键值,测试主从是否同步:
三个结点我们都创建一个链接,方便我们使用。
[[email protected] src]$ sudo ln -s /data/redis-5.0.5/src/redis-cli /usr/bin/redis-cli
[[email protected] src]$ sudo ln -s /data/redis-5.0.5/src/redis-cli /usr/bin/redis-cli
[[email protected] src]$ sudo ln -s /data/redis-5.0.5/src/redis-cli /usr/bin/redis-cli
观察主从信息状态:

info


重启主后服务器观察发现未保存的数据将丢失:


结论:
使用主从模式时应注意master节点的持久化操作,matser节点在未使用持久化的情况详情下如果宕机,并自动重新拉起服务,从服务器会出现丢失数据的情况。数据丢失的原因:因为master服务挂了之后,重启服务后,slave节点会与master节点进行一次完整的重同步操作,所以由于master节点没有持久化,就导致slave节点上的数据也会丢失掉。所以在配置了Redis的主从模式的时候,应该打开主服务器的持久化功能。
测试使用哨兵模式,自动监视Master节点,当前挂掉后,自动将Slaver节点变为Master节点:

然后手动切换从(26.206):

127.0.0.1:7000> slaveof 192.168.26.112 7000

127.0.0.1:7000> set name tom

小结:

  1. Master可读可写,Slaver只能读,不能写
  2. Master可以对应多个Slaver,但是数量越多压力越大,延迟就可能越严重
  3. Master写入后立即返回,几乎同时将写入异步同步到各个Slaver,所以基本上延迟可以忽略
  4. 可以通过slaveof no one命令将Slaver升级为Master(当Master挂掉时,手动将某个Slaver变为Master)
  5. 可以通过sentinel哨兵模式监控Master,当Master挂掉时自动选举Slaver变为Master,其它Slaver自动重连新的Master(自动不成功有时需要使用手动切主,暂时还没找到具体原因)

原文地址:https://blog.51cto.com/jdonghong/2443476

时间: 2024-11-13 08:50:39

redis主从复制故障恢复及持久化的意义的相关文章

Redis主从复制与sentinel模式

第1章 Redis主从复制: 基于RDB持久化的功能来实现主从复制的功能 1.1 redis复制特性: 1.      使用异步复制 2.      一个主服务器可以有多个从服务器 3.      从服务器也可以有自己的从服务器 4.      复制功能不会阻塞主服务器 5.      可以通过复制功能来让主服务器免于执行持久化操作,由从服务器执行持久化操作即可 1.1 主从复制原理: 1.      从服务器向主服务器发送sync命令 2.      街道sync命令的主服务器会调用bgsav

redis内存优化、持久化以及主从复制

Redis 数据库内存优化参数的配置,每种持久化方式的利与弊以及主从复制的原理以及配置 一.常用内存优化手段与参数 redis的性能如何是完全依赖于内存的,所以我们需要知道如何来控制和节省内存. 首先最重要的一点是不要开启Redis的VM选项,即虚拟内存功能,这个本来是作为Redis存储超出物理内存数据的一种数据在内存与磁盘换入换出的一个持久化策略,但是其内存管理成本非常的高,所以要关闭VM功能,请检查你的redis.conf文件中 vm-enabled 为 no. 其次最好设置下redis.c

读完这篇文章,就基本搞定了Redis主从复制

在前面的两篇文章中,我们分别介绍了Redis的内存模型和Redis持久化技术及方案选择. 在之前的文章中曾提到过,Redis高可用的方案包括持久化.主从复制(及读写分离).哨兵和集群.其中持久化侧重解决的是Redis数据的单机备份问题(从内存到硬盘的备份):而主从复制则侧重解决数据的多机热备.此外,主从复制还可以实现负载均衡和故障恢复. 在本文中,我们将详细介绍Redis主从复制的方方面面,包括:如何使用主从复制.主从复制的原理(重点是全量复制和部分复制.以及心跳机制).实际应用中需要注意的问题

深入学习Redis主从复制

一.主从复制概述 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器.前者称为主节点(master),后者称为从节点(slave):数据的复制是单向的,只能由主节点到从节点. 默认情况下,每台Redis服务器都是主节点:且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点. 主从复制的作用 主从复制的作用主要包括: 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式. 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障

《【面试突击】— Redis篇》-- Redis哨兵原理及持久化机制

能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis哨兵原理及持久化机制 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学.我们一起巩固.突击面试官常问的一些面试题,加油!! <[面试突击]— Redis篇>--Redis数据类型?适用于哪些场景? <[面试突击]— Redis篇>--Redis的线程模型了解吗?为啥单线程效率还这么

构建高性能数据库缓存之redis主从复制

一.什么是redis主从复制? 主从复制,当用户往Master端写入数据时,通过Redis Sync机制将数据文件发送至Slave,Slave也会执行相同的操作确保数据一致:且实现Redis的主从复制非常简单. 二.redis主从复制特点 1.同一个Master可以拥有多个Slaves. 2.Master下的Slave还可以接受同一架构中其它slave的链接与同步请求,实现数据的级联复制,即Master->Slave->Slave模式: 3.Master以非阻塞的方式同步数据至slave,这将

Redis主从复制

一.Redis的Replication 优点:读写分离 下面的列表清楚的解释了Redis Replication的特点和优势.    1). 同一个Master可以同步多个Slaves.    2). Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力.因此我们可以将Redis的Replication架构视为图结构.    3). Master Server是以非阻塞的方式为Slaves提供服务.所以在Master-Slave同步期间,客户端仍然可以

配置Redis主从复制

[构建高性能数据库缓存之redis主从复制][http://database.51cto.com/art/201407/444555.htm] 一.什么是redis主从复制? 主从复制,当用户往Master端写入数据时,通过Redis Sync机制将数据文件发送至Slave,Slave也会执行相同的操作确保数据一致:且实现Redis的主从复制非常简单. 二.redis主从复制特点 1.同一个Master可以拥有多个Slaves. 2.Master下的Slave还可以接受同一架构中其它slave的

redis 安装配置及持久化详解

一.redis简介 二.redis安装 三.redis配置文件详解 四.redis持久化详解 1.redis 简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询. Redi