持久化-bgsave 指令与工作原理|学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习持久化-bgsave 指令与工作原理

开发者学堂课程【Redis 入门到精通(进阶篇)持久化-bgsave 指令与工作原理】学习笔记与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/765/detail/13420


持久化-bgsave 指令与工作原理

 

内容介绍

一、数据量过大,单程执行方式造成效率过低如何处理?

二、RDB 启动方式——bgsave 指令

三、RDB 启动方式——bgsave 指令工作原来

四、RDB 启动方式——bgsave 指令相关配置

 

一、数据量过大,单程执行方式造成效率过低如何处理?

后台执行

谁:redis 操作者(用户)发起指令;redis 服务器控制指令执行

什么时间:即时(发起);合理的时间(执行)

干什么事情:保存数据

 

二、RDB 启动方式——bgsave 指令

1、命令

bgsave

2、作用

手动启动后保存操作,但不是立即执行

3、进行操作

右侧客户端:127.0.0.1:6379>set addr beijing

ok

127.0.0.1:6379>bgsave

Background saying started//后台保存已经开始

127.0.0.1:6379>

左侧客户端:[root@localhost redis-4.0.0]# cd data

[root@localhost data]#ll

total 12

rw-r--r--.1 root root 5807 Oct 13 03: 39 6379. log

rw-r--r--1 root root  177 Oct 13 03:39 dump-6379. rdb

[ root@localhost data]# ll

total 12

rw-r--r--.1 root root  6067 Oct 13 03:47 6379. log

rw-r--r--.1 root root   191 Oct 13 03:47 dump-6379. rdb

[ root@localhost data] #

文件大小、时间、内容均发生改变,查看一下,cat dump-6379.drb,发现 age 后多了 addr。此时 bgsave 已经执行完毕,注意是在后台执行的。

 

三、RDB 启动方式——bgsave 指令工作原理

1、工作原理

image.png

据上图,当执行 bgsave 指令时,首先发送指令至 redis,接着会返回一个消息,即 Background saving started,此时没有真正执行;当返回消息时,会调用 fork 函数生成子进程,并不参与 redis 命令操作,而让它创建 rdb 文件同时做完这件事,做完后会返回消息至redis。

2、进行验证

查看日志文件 total 12

rw-r--r--.1 root root  6067 Oct 13 03:47 6379. log

rw-r--r--.1 root root   191 Oct 13 03:47 dump-6379. rdb

[ root@localhost data] # cat 6379.log

打开日志后发现 Background saving terminated with success

即会返回信息,若这个信息是控制台的话可以看见信息,在日志中变成这种格式。

3、注意:

bgsave 命令是针对 save 阻塞问题做的优化。Redis 内部所有涉及到 RDB 操作都采用 bgsave 的方式,save 命令可以放弃使用。

 

四、RDB 启动方式——bgsave 指令相关配置

1、dbfilename dump.rdb

2、dir

3、rdbcompressionyes

4、rdbchecksumyes

5、stop-writes-on-bgsave -error yes

说明:后台存储过程中如果出现错误现象,是否停止保存操作经验:通常默认为开启状态

经验:通常默认为开启状态

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
CPU的工作原理基于其内部结构,通过执行指令来完成各种任务
CPU的工作原理基于其内部结构,通过执行指令来完成各种任务
63 2
|
1月前
|
SQL 缓存 Java
JVM知识体系学习三:class文件初始化过程、硬件层数据一致性(硬件层)、缓存行、指令乱序执行问题、如何保证不乱序(volatile等)
这篇文章详细介绍了JVM中类文件的初始化过程、硬件层面的数据一致性问题、缓存行和伪共享、指令乱序执行问题,以及如何通过`volatile`关键字和`synchronized`关键字来保证数据的有序性和可见性。
30 3
|
3月前
|
存储 消息中间件 NoSQL
Redis命令详解以及存储原理
Redis命令详解以及存储原理
|
存储 Kubernetes 应用服务中间件
应用存储和持久化数据卷:核心知识(二)|学习笔记
快速学习应用存储和持久化数据卷:核心知识(二)
122 0
应用存储和持久化数据卷:核心知识(二)|学习笔记
持久内存指令(PMDK)简介
持久内存指令(PMDK)简介
325 0
|
存储 Kubernetes Docker
k8s持久卷工作原理
k8s持久卷工作原理
302 0
k8s持久卷工作原理
|
存储 运维 NoSQL
redis集群详细搭建方式(含原理、操作指令、异常处理)
1.概述 概念: redis集群是从3.0版本开始支持的一个功能,是redis的一种水平扩展方式,将全局数据分散的存储在N个结点上,从而来将请求流量打散到各个结点上,减轻单结点压力。 实现原理: redis的集群进行数据散列时使用了一致性hash算法的思想,如果对一致性hash算法有兴趣可以参照博主的另一篇文章:
992 0
|
存储 NoSQL Unix
《微服务实战》 第二十章 Redis连接指令 客户端指令 服务器指令
《微服务实战》 第二十章 Redis连接指令 客户端指令 服务器指令
95 0
|
存储
硬盘是什么?工作原理是什么?底层原理是什么?
硬盘是什么?工作原理是什么?底层原理是什么?
808 0
|
NoSQL Redis 开发者
持久化-save 指令工作原理|学习笔记
快速学习持久化-save 指令工作原理
持久化-save 指令工作原理|学习笔记