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

相关文章

Sentinel 高可用流量管理框架

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

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

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

VMware8实现高可用(HA)集群

陈科肇 =========== 操作系统:中标麒麟高级操作系统V6 x86-64 实现软件:中标麒麟高可用集群软件 ======================== 1.环境的规划与配置 硬件要求 服务器服务器至少需要 2 台,每台服务器至少需要 2 块网卡以做心跳与连接公网使用存储环境 建议使用一台 SAN/NAS/ISCSI 存储作为数据共享存储空间 软

用Cri-O,Sealos CLI,Kubeadm方式部署K8s高可用集群

3.6 Cri-O方式部署K8s集群 注意:基于Kubernetes基础环境 3.6.1 所有节点安装配置cri-o [root@k8s-all ~]# VERSION=1.28[root@k8s-all ~]# curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensu

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(4)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(3)-CSDN博客  这节就是真正的存储数据了   理清一下思路: 1.存储路径并检查 //2进制文件类存储private static string Data_Binary_Pa

Kubernetes高可用集群搭建(kubeadm)

1 Kubernetes高可用集群介绍 前面已经介绍了Kubernetes的集群部署,但是都只是介绍的单master节点的情况,由于单master节点的可靠性不高,不适合实际的生产环境,此处介绍如何实现多master节点的高可用集群的搭建。 2 安装要求 一台或多台机器,操作系统CentOS7.x-x86_64硬件配置:2G或更多ARM,2个CPU或更多CPU,硬盘20G及以上集群中所有机器

iptables持久化命令:netfilter-persistent save

在Linux上,使用netfilter-persistent命令可以保存iptables防火墙规则,确保它们在系统重启后仍然有效。以下是如何使用netfilter-persistent来保存iptables规则的步骤: 打开终端:首先,你需要打开Linux系统的终端。保存规则:使用netfilter-persistent save命令可以保存当前的iptables规则。这个命令会调用所有插件,将

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(3)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(2) (*****生成数据结构类的方式特别有趣****)-CSDN博客 做完了数据结构类,该做一个存储类了,也就是生成一个字典类(只是声明)  实现和上一节的数据结构类的方式大同小异,所

# 高可用的并发解决方案nginx+keepalived(一)

高可用的并发解决方案nginx+keepalived(一) 段子手 一、课程计划介绍 1、课程标题 为并发量高的优质网站量身定制高可用的并发解决方案 nginx+keepalived。 2、引导语 在这个互联网飞速发展的时代,人们已经离不开网络,其中网购最为常见。在家网购,上班路上网购,吃饭也购物,下班还网购,2017年双十一天猫支付峰值达到了25.6万笔/秒。热点网站中频繁出现的大量

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(2) (*****生成数据结构类的方式特别有趣****)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(1)-CSDN博客 本节内容 实现目标 通过已经得到的Excel表格数据,生成对应类对象(不赋值),一张表就是一个对象,其中包含了如下的字段  就像这样子  实现思路 上