您现在的位置是:首页 > 正文

redis笔记(一)——redis持久化基础

2024-01-30 21:18:19阅读 0

1 RDB持久化

RDB持久化时redis默认使用的持久化功能。

该功能可以创建一个经过压缩的二进制文件,其中包含了服务器在数据库中存储的键值对数据等信息

RDB持久化产生的文件以.rdb后缀结尾,rdb代表redis database

 

1.1 redis创建RDB文件的方式

用户既可以使用SAVE命令或者BGSAVE命令手动创建RDB文件,也可以通过设置save配置选项让服务器在满足指定条件时自动执行BGSAVE命令

1)save 阻塞服务器并创建RDB文件

save命令是一个无参数命令,它在创建RDB文件成功时将返回ok作为结果

127.0.0.1:6379> save
OK

接收到save命令redis服务器将遍历数据库包含的所有数据库,并将数据库包含的键值对全部记录到RDB文件中。

在save命令执行期间,redis服务器将阻塞,直到rdb文件创建完毕。

如果redis服务器在执行save命令时已经拥有了相应的rdb文件,服务器将使用新创建的rdb文件替代现有的rdb文件

 

2)bgsave 以非阻塞方式创建RDB文件

save命令在执行时会阻塞整个服务器,所以用户在使用该命令创建RDB文件期间将无法为其他客户端提供服务。为了解决这个问题,redis提供了save命令的异步版本BGSAVE

bgsave不会直接使用redis服务器进程创建RDB文件,而是使用子进程创建RDB文件。

redis服务器在执行bgsave命令时,仍然可能会由于创建子进程而被短暂的阻塞

3)通过配置选项自动创建RDB文件

用户可以通过设置save选项,让redis服务器在满足指定条件时自动执行BGSAVE命令

配置格式如下

save <seconds> <changes>

save 选项接收seconds和changes两个参数

      seconds用于指定触发持久化操作所需的时长

      changes用于指定触发持久化操作的所需的修改次数

例如

save 300 10

指的是服务器在300s之内至少执行了10次修改,服务器会自动执行一次BGSAVE命令

redis允许用户同时向服务器提供多个save选项、

 

2 AOF持久化

aof持久化的核心原理在于:

       服务器每次执行完写命令后,都会以协议文本的方式将被执行的命令追加到AOF文件的末尾。服务器在停机之后,重亲执行AOF文件中保存的redis命令,将数据库恢复至停机之前的状态

2.1AOF的配置

1)打开AOF的配置

可以通过服务器的appendonly选项来决定是否打开aof持久化功能

appendonly yes

当aof持久化功能处于打开状态时,redis服务器在默认情况下将创建一个名为appendonly.aof的文件作为aof文件

2)设置AOF的冲洗频率

当程序调用write系统对文件进行写入时,系统并不会直接将数据写入硬盘,而是会先将数据写入位于内存的缓冲区中,等到指定的时限到达或者满足某些写入条件时,系统才会执行flush系统调用,将缓冲区的数据冲洗至硬盘。

redis向用户提供appendfsync选项,来控制冲洗aof文件的频率

# appendfsync always
#appendfsync everysec
# appendfsync no

  • always 每执行一个写命令,就对aof文件执行一次冲洗操作
  • everysec 每个1s,对aof文件执行一次冲洗操作(redis默认)
  • no 不主动对aof文件执行冲洗操作,由操作系统决定何时对aof进行冲洗

 

 

 

 

网站文章

  • 腾讯“微视”,还没活就被“美拍”拍死了?

    腾讯“微视”,还没活就被“美拍”拍死了?http://mp.weixin.qq.com/s?__biz=MzA4ODc5MTgzNw==&mid=200325762&idx=2&sn=0e1d60d7d781e22949cec3632460cdb8&3rd=MzA3MDU4NTYzMw==&scene=6#rd腾讯家的短视频App“微视”最近压...

    2024-01-30 21:18:12
  • 详述load-on-startup

    一、xml中作用 简介:nub可以设置该servlet在加载时的优先级以及是否在容器中加载该servlet 其中的nub为数字:当为正整数是,表示加载,且数字越小代表优先级越高;若为负数,则容器启动时不加载,只有该servlet被选中才加载

    2024-01-30 21:18:06
  • (八)相关关系与回归关系的区别与联系?

    (八)相关关系与回归关系的区别与联系?

    《深入浅出统计学》-读书笔记 第8篇本文内容: 第15章 相关与回归:我的线条如何?

    2024-01-30 21:17:58
  • Qt之XML:解析和生成XML文件

    我们可以使用writeStartDocument()函数写入XML文档的开始标记,并使用writeStartElement()和writeAttribute()函数编写元素的开始标记和属性。最后,我们...

    2024-01-30 21:17:25
  • 五子棋:起源、原理与游戏规则、vue实现五子棋案例游戏

    五子棋:起源、原理与游戏规则、vue实现五子棋案例游戏

    五子棋作为一种深受欢迎的棋类游戏,其简单的规则和丰富的历史背景使其成为了中华文化的一部分。通过了解五子棋的历史、原理和游戏规则,我们可以更好地理解这一游戏的魅力所在,并在游戏中体验到中国传统文化的独特韵味。

    2024-01-30 21:17:18
  • 【STM32】FreeRTOS编码风格

    00. 目录 文章目录00. 目录01. FreeRTOS编码标准02. FreeRTOS变量命名规则03. FreeRTOS函数命名规则04. FreeRTOS宏命名规则05. FreeRTOS数据...

    2024-01-30 21:16:49
  • 2022-06-09 工作记录--yarn/npm-Error-EPERM: operation not permitted, uv_cwd

    2022-06-09 工作记录--yarn/npm-Error-EPERM: operation not permitted, uv_cwd

    yarn/npm-Error-EPERM: operation not permitted, uv_cwd

    2024-01-30 21:16:41
  • Linux CPU亲和性 (affinity)

    【Linux】 CPU亲和性(affinity)及与亲和性有关的两个函数 sched_setaffinity()和 sched_getaffinity()转自: http://www.ibm.com/developerworks/cn/linux/l-affinity.html简单地说,CPU 亲和性(affinity) 就是进程要在某个给定的 CPU 上尽量长时间地运行而

    2024-01-30 21:16:36
  • 基于STM32F103单片机的智能婴儿床智能风扇系统

    基于STM32F103单片机的智能婴儿床智能风扇系统

    系统功能设计(末尾附文件)本系统由STM32F103C8T6单片机核心板、LCD1602液晶显示、DHT11温湿度传感器+风扇控制、声音检测、音乐片驱动、继电器控制电机、拨动开关、蓝牙模块组成。1、拨...

    2024-01-30 21:16:07
  • 微服务feign调用时候,token丢失问题解决方案

    feign微服务调用的原理是发送一个http请求,此时不会携带原来的token,因此在调用另一个服务的接口的时候,token会丢失,需要在代码里面处理,把token携带过去;在拦截器里面,获取token,然后加入到templete里面;一般需要将这块代码加入到所有涉及的微服务的拦截器里面;所以会加入到common模块里面。一般http请求的token在请求头里面;...

    2024-01-30 21:16:01