Reids持久化和高可用

2024-08-24 13:38
文章标签 可用 持久 reids 化和高

本文主要是介绍Reids持久化和高可用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Reids持久化和高可用

文章目录

  • Reids持久化和高可用
    • Redis持久化
      • RDB
      • AOF
        • AOF写入机制
    • Redis集群
      • 主从复制
      • 高可用Sentinel
      • Sentinel实验
      • Redis Cluster分布式集群

Redis持久化

  • 持久化:将书籍从掉电易失的内存存放到能够永久存储的设备上
  • Redis服务是使用内存来存储数据,如果掉电、服务崩溃都会导致Redis中数据丢失,如有必要,可以持久化数据。
  • Redis持久化方式:RDB(Redis DB)、AOF(AppendOnlyFile)

RDB

  • 在默认情况下,Redis将某时间点的数据快照保存在名字为dump.rdb的二进制文件中

  • 策略

    1. 自动:按照配置文件中的条件满足就执行BGSAVE
    2. 手动:客户端发起SAVE、BGSAVE命令
  • 配置

    1. /etc/redis/redis.config配置文件。注意这里是我自己安装时修改了配置文件路径。具体配置文件请查找redis配置文件
    save 900 1 #如果900秒内,有一次更新,或者增加过,会保持落地数据一次
    save 300 10 # 如果在300秒内,有10次以上的改动,会自动保存落地数据一次
    save 60 10000 # 如果在60秒有10000次改动,或10000次以上的改动,就自动保存落地数据一次#数据文件名称
    dbfilename dump.rdb
    #数据文件存放目录
    dir /var/lib/redis/6379
    
    1. save 60 1000,Redis要满足在60秒内至少有1000个键被改动,会自动保存一次,只要满足上面3个条件之一,就自动执行快照。

      • 执行完成后,时间计数器和次数计数器都会归零重新计数。这多个条件不是叠加效果
      • SAVE命令:阻塞式命令,执行期间不响应客户端请求
      • BGSAVE:非阻塞命令,执行期间还可以接受并处理请求,会folk一个子进程创建RDB文件
      127.0.0.1:6379> SAVE
      127.0.0.1:6379> BGSAVE
      
  • 优点

    1. 完全备份,不同时机的数据集备份可以做到多版本恢复
    2. 紧凑的单一文件,方便网络传输,适合灾难恢复
    3. 快照文件直接恢复,大数据集速度比AOF快些
  • 缺点

    1. 会丢失最近写入、修改的而未能持久化的数据
    2. folk过程较耗时,会造成毫秒级不能响应客户端请求
  • RDB备份策略

    1. 创建一个定时任务cron job,每小时或者每天将dump.rdb复制到指定目录
    2. 确保备份文件名称带有日期时间信息,便于管理和还原对应的时间点的快照版本
    3. 启用定时任务删除过期的备份
    4. 如果有必要,跨物理主机、跨机架、异地备份

AOF

  • Append only file,采用追加的方式保存,默认文件appendonly.aof。
  • AOF实质是记录所有的写操作命令,在服务启动的时候使用这些命令就可以还原数据库
AOF写入机制
  • AOF方式不能保证绝对不丢失数据

  • 目前常见的操作系统中,执行系统调用write函数,将一些内容写入到某个文件里面时,为了提高效率,系统通常不会直接将内容写入硬盘里面,而是先将内容放入一个内存缓冲区(buffer)里面,等到缓冲区被填满,或者用户执行fsync调用fdatasync调用时才将存储在缓冲区里面的内容真正的写入到硬盘里,未写入磁盘之前,数据可能会丢失

  • 写入磁盘的策略

  1. appendfsync选项,这个选项的值可以是always、everysec或者no

    • Always:服务器每写入一个命令,就调用一次fdatasync,将缓冲区里面的命令写入到磁盘。这种模式下,服务器出现故障,也不会丢失任何已经成功执行的命令数据
    • Everysec(默认): 服务器每一秒重调用一次fdatasync,将缓冲区里面的命令写入到磁盘。这种模式下,服务器出现故障,最多只丢失一秒钟内的执行的命令数据

这篇关于Reids持久化和高可用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102634

相关文章

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

Redis持久化机制之RDB与AOF的使用

《Redis持久化机制之RDB与AOF的使用》:本文主要介绍Redis持久化机制之RDB与AOF的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis持久化机制-RDB与AOF一、RDB持久化机制1、RDB简介2、RDB的工作原理3、RDB的优缺点4

Redis高可用-主从复制、哨兵模式与集群模式详解

《Redis高可用-主从复制、哨兵模式与集群模式详解》:本文主要介绍Redis高可用-主从复制、哨兵模式与集群模式的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Redis高可用-主从复制、哨兵模式与集群模式概要一、主从复制(Master-Slave Repli

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

SpringCloud之consul服务注册与发现、配置管理、配置持久化方式

《SpringCloud之consul服务注册与发现、配置管理、配置持久化方式》:本文主要介绍SpringCloud之consul服务注册与发现、配置管理、配置持久化方式,具有很好的参考价值,希望... 目录前言一、consul是什么?二、安装运行consul三、使用1、服务发现2、配置管理四、数据持久化总

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

Redis事务与数据持久化方式

《Redis事务与数据持久化方式》该文档主要介绍了Redis事务和持久化机制,事务通过将多个命令打包执行,而持久化则通过快照(RDB)和追加式文件(AOF)两种方式将内存数据保存到磁盘,以防止数据丢失... 目录一、Redis 事务1.1 事务本质1.2 数据库事务与redis事务1.2.1 数据库事务1.

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和