Redis(二) -- 持久化

2020-06-02  本文已影响0人  OakesYa

背景

项目中经常会使用到redis对数据库进行减压或者分布式锁,以前只是对Redis的使用有一些学习,于是决定对Redis做一次完整的了解和学习。所以我们从官方文档开始。首先官网第一句话就是Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker。我们可以看到官方介绍数据是存放在内存中的,这也一定程度上能说明redis为啥访问速度可以超快。内存数据在断电之后是会消失的,但是我们发现Redis集群有时候因为故障再重启之后能恢复数据,这就是我们今天要学习的Redis持久化

RDB

RDB持久方式是指在指定的时间间隔对数据进行快照存储。Redis会将数据快照保存到dump.rdb的二进制文件中,可以设置Redis为满足"N秒内数据集至少有M个改动"时自动保存一次或者调用SAVE/BGSAVE手动进行数据保存。保存dump.rdb文件的步骤1 Redis调用forks拥有父进程和子进程 2 子进程将数据集写入到临时RDB文件中 3 当子进程完成对新RDB文件写入时,再替换掉老的RDB文件

AOF

AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据.AOF可以选择多种不同的fsync策略:无fsync,每秒fsync(默认),每次写的时候fsync。由于fsync是有后台线程进行处理的,主线程会尽力处理客户端请求,所以性能依旧不错,当RDB和AOF都开启,故障时会选择AOF恢复数据。

上一篇 下一篇

猜你喜欢

热点阅读