Redis 之 通过RDB文件进行恢复

本文介绍了Redis的持久化机制,特别是RDB文件的恢复原理。RDB通过定时内存数据快照保存到磁盘,重启时加载恢复。这种方式适合大规模数据恢复,但可能丢失部分最近数据。在恢复过程中,包括停止服务、替换RDB文件、调整权限和启动服务等步骤。
摘要由CSDN通过智能技术生成

一、背景

我们知道Redis是一种NoSql数据库,常用来做缓存数据库,因为运行在内存中,不用每次再到数据库中去查询需要的数据,所以比普通的关系型数据库性能更优越,在内存中操作数据肯定比磁盘上性能是很大的提高。所用很多企业都拿redis来做缓存数据库。在内存中存储数据就会涉及到一个不可避免的问题,如果宕机或者机器受到物理损坏或者关机的时候,内存中的数据就会消失。但是当我们再次开启redis服务的时候,数据还是存在的。既然是数据在内存中存储,我们再次开机时候,内存又加载了我们机器出问题时候的数据。redis具体是怎么做到的,这就是我们今天所要说的redis持久化机制。

二、原理

redis持久化实现有两个方式RDB(Redis DataBase 默认开启)和AOF(Append Only File 默认关闭)都是通过来保存文件在磁盘中,在redis服务在启动时,在将数据读取到内存中。所以我们在重启开启服务时候,发现之前的数据还存在。

三、实现机制

rdb方式是通过在是定时间内将内存中的数据集快照(Snapshot)写入磁盘;在数据恢复时,再将快照中的信息读取到内存中。

四、优缺点

优势:适合大规模的数据恢复,对数据的完整性和一致性要求不高;
劣势:在一定的时间间隔内做备份,会丢失一部分数据,因为一般会丢失最后一次的保存记录,可以通过lastsave获取最后一次快照的时间查看。

查看最后一次写入磁盘的时间的命令:

10.3.152.78:6379> LASTSAV
Redis是一个开源的内存数据存储系统,可以用作数据库、缓存和消息队列等。它支持多种数据结构,如字符串、列表、哈希、集合和有序集合等。 在Redis中,RDB文件是一种持久化的方式,用于将内存中的数据保存到硬盘中。当我们使用RDB文件进行启动时,Redis会将RDB文件加载到内存中,从而恢复原来的数据状态。 RDB文件是通过Redis快照功能生成的,可以通过执行SAVE或BGSAVE命令手动创建RDB文件,也可以根据配置文件中设置的自动快照触发条件周期性地创建RDB文件。 当我们通过RDB文件启动Redis时,首先需要将RDB文件放在Redis的工作目录下。然后,在启动Redis时,可以通过命令行的方式指定RDB文件的路径,例如: redis-server /path/to/redis.conf --dir /path/to/rdb/file 这样,Redis就会加载RDB文件,并将其中的数据恢复到内存中。启动完成后,Redis将可以使用之前保存在RDB文件中的数据。 通过RDB文件启动Redis的优点是恢复速度快,因为RDB文件保存了Redis的快照,加载RDB文件只需要将文件中的数据读取到内存中即可。同时,RDB文件的大小相对较小,占用的磁盘空间较少。 需要注意的是,使用RDB文件进行启动时,最好先备份好最新的RDB文件,以免数据丢失。另外,RDB文件只保存了快照时刻的数据,因此如果在最新RDB文件生成之后有新数据写入,这部分数据是无法恢复的。为了避免数据丢失,还可以将AOF日志功能与RDB文件一起使用,将数据的修改操作追加到AOF日志文件中,确保数据的持久性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值