面试中问到Redis持久化的原理,本篇在做详细解答可在redis.conf中配置,会以一段时间内达到指定修改的次数为规则来触发快照操作,快照文件名为dump.rdb 。每当Redis服务重启的时候都会从该文件中把数据加载到内存中 。在60秒内有10000次操作即触发RDB持久化 。
Redis持久化就是把数据保存到磁盘上(可永久保存的存储设备中),以便数据恢复 。
AOF(append only file)持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的 。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式 。
redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化) , 另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件) 。
开启redis后再启用aof会不会引起数据丢失1、开启aof之前的数据是会丢失的,执行bgrewriteaof是无效的 。aof是对每个命令操作记录 , 以及新文件替换旧记录文件的方式 , 猜想除非启动aof后 , 新key肯定有,但旧key有过操作,才会在aof有记录,从而造成这样的情况 。
2、因为AOF丢失数据的概率更低,因此如果对Redis中数据的完整性要求高的话 , 通常会启用AOF 。
3、优点:(1)AOF可以更好的保护数据不丢失,一般AOF会每隔1秒 , 通过一个后台线程执行fsync操作 , 最多丢失1秒钟的数据 。
4、no取决于操作系统的刷盘时间,安全性不高 。因此我们推荐使用appendfsync everysec这种方式 , 在最坏的情况下,只会丢失1秒的数据,但它能保持较好的访问性能 。当然,对于有些业务场景 , 对丢失数据并不敏感 , 也可以不开启AOF 。
redis的AOF持久化的配置以及工作流程【redis整点触发aof,redis单点故障】(3)redis主进程,接收到client新的写操作指令后,在内存中写入日志,同时新的日志指令也会在旧的AOF日志文件中写入 。
以下是AOF工作流程图:Redis中默认不开启AOF , appendonly yes ,是开启的配置 。文件的名字默认为appendonly.aof,可以通过参数 appendfilename 来设置 。目录也是通过 dir 来设置 。所有写入命令会追加到 aof_buf(缓冲区) 中 。
开启AOF功能需要设置配置:appendonly yes,默认不开启 。AOF文件名通过appendfilename配置设置,默认文件名是appendonly.aof 。保存路径同RDB持久化方式一致 , 通过dir配置指定 。
redis的RDB和AOF两种持久化机制优缺点分析比较:aof文件比rdb更新频率高,优先使用aof还原数据 。
RDB 默认的保存文件为 dump.rdb,优点是以二进制存储的,因此 占用的空间更小 、数据存储更紧凑,并且与 AOF 相比,RDB 具备 更快的重启恢复能力。
AOF的优点在于比RDB更安全,一般不会出现数据丢失的现象,就算出现了数量也不会太大,当然了,官方是推荐同时开启AOF和RDB的;而缺点是AOF持久化的速度相比RDB要慢 , 存储的是一个文本文件,到了后期文件会比较大,传输困难 。
Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复 。Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式 。
RDB机制的优点是持久化的文件相对较小,且恢复数据的速度相对较快 。AOF:AOF是一种日志持久化机制,它记录了Redis服务器所执行的所有写操作 。
RDB持久化和AOF持久化的区别:存储数据RDB持久化保存键空间的所有键值对(包括过期字典中的数据),并以二进制形式保存,符合rdb文件规范,根据不同数据类型会有不同处理 。
推荐阅读
- oppo怎么进入电脑,oppo怎么进入电脑桌面
- 美国华盛顿西雅图服务器,华盛顿西雅图us news
- python函数生成式的简单介绍
- 视频号怎么开自己的作品,自己的视频号怎么弄
- 户外活动体育游戏小班走,户外活动体育游戏小班走路教案
- 游戏开发证书,游戏开发证书有什么用
- gis中怎么开追踪,gis里面的自动追踪在哪里
- 如何进入PPT的页面儿,ppt怎么点击进入相应的页面
- 动态壁纸ios下载安装,动态壁纸软件下载苹果手机