Redis——Redis用作数据库(持久化/RDB/AOF)

本文详细探讨了Redis用作数据库时的持久化策略,重点关注RDB和AOF两种方式。RDB通过定时快照实现数据持久化,而AOF则记录每次写操作以保证数据完整。RDB适合全量恢复,但可能丢失部分数据;AOF日志详尽,但文件可能过大。Redis允许同时开启两者,以AOF为主,确保数据安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis 用作数据库

Redis 用作缓存,其特点之一就是数据可以丢,只需要保证其响应急速,性能较高!

但是如果把 Redis 做数据库:数据绝对不能丢的,所以除了保证其速度之外,还必须保证其持久性,数据一定不可以丢失

而我们知道 Redis 处于内存,内存数据掉电易失!所以如果想要使用 Redis 作为数据库,必须要保证其持久性

只要是存储层,为了保证数据安全,都会有如下两个通用的功能:

  • 快照/副本:记录某一时刻数据库中所有的正确数据状况。可以保存在本地主机,也可以拷贝到另一台远程主机,一旦出现断电,甚至服务器瘫痪,也可以根据快照恢复某一时刻的正常数据
  • 日志:用户发生增删改的时候,所有的操作都会记录到一个日志文件。如果周一数据正常,周二系统上线新功能出现一个致命错误,造成大量资金损失,此时可以将系统紧急停服,根据日志将数据回滚到一个正常状态

官网持久化介绍:http://redis.cn/topics/persistence.html

Redis 提供了不同级别的持久化方式:

  • RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.
  • AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾。Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.
  • 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式.
  • 你也可以同时开启两种持久化方式, 在这种情况下, 当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整.

最重要的事情是了解RDB和AOF持久化方式的不同,这也是面试高频,下面我们就来详细学习以下 RDB 和 AOF

一、持久化之RDB

RDB 全称 redis database,在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的 Snapshot 快照,它恢复时直接将快照文件直接读到内存里;

Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,主进程是不进行任何 IO操作的,它就确保了极高的性能;RDB 文件是在硬盘上的二进制文件,是 Redis 在内存存储的数据在某一时刻的快照

1、时点性

系统中不可能每分每秒都进行快照存储,这样会大量占用系统资源且毫无意义,所以运维人员一般会定时保存快照

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值