redis永久化存储

为什么需要持久化存储?

原因:redis是存放在内存中的,断电会导致数据丢失
解决方法:把redis数据进行持久性存储,将其存储在磁盘中。

存储方式:
1.RDB
RDB中文名为快照/内存快照,Redis按照一定的时间周期将目前服务中的所有数据全部写入到磁盘中。

缺点:
如果备份时间周期是5分钟,但是在4分59秒时redis崩溃,会造成这段时间内的数据无法备份,从而丢失数据。

配置处理:
# 周期性执行条件的设置格式为
save <seconds> <changes>
# 默认的设置为:
save 900 1
save 300 10
save 60 10000
# 以下设置方式为关闭RDB快照功能
save ""


2.AOF
AOF全称是Append Only File,记录对redis操作的每次命令,将其记录到磁盘中。如果新建一个kes-val,然后delete,记录到
磁盘中,在文件读取写入到redis时,此kes-val不会存在,这样就造成了文件不必要的增加,所以需要 日志重写功能(讲kes-val从磁盘中去掉,从而节省空间)。

配置处理:
appendonly:默认情况下AOF功能是关闭的,将该选项改为yes以便打开Redis的AOF功能。
appendfsync设置三个值,分别是:
always 每次对redis的操作都会记录,效率最低
everysec 每秒对redis的操作记录到磁盘
no 大约每30秒对redis的操作记录到磁盘

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis的持久化是为了避免进程退出导致数据的永久丢失而设计的。由于Redis是基于内存的数据库,数据存储在内存中,关闭服务或者断电会导致数据丢失。为了解决这个问题,Redis提供了两种持久化方式:AOF(Append Only File)和RDB(Redis Database File)。 AOF持久化是通过将写操作追加到AOF文件中来实现的。AOF文件是一个只追加的日志文件,记录了写操作的命令。当Redis重启时,Redis会根据AOF文件中的命令重新执行一遍,从而恢复数据。AOF文件的大小会随着写操作的增加而增大,因此可能会占用较大的磁盘空间。为了避免AOF文件过大,Redis提供了AOF重写机制,可以定期地将AOF文件重写为紧凑格式,只保留可以恢复数据库状态的最小命令集合。 RDB持久化是通过将当前数据库状态快照保存到一个二进制文件中来实现的。RDB文件是一个经过压缩的二进制文件,包含了数据库的数据和键值对的过期时间等信息。RDB持久化是通过fork子进程来实现的,它会将当前数据库状态保存到一个临时文件中,然后替换原来的RDB文件。RDB持久化适用于数据备份和灾难恢复。 除了持久化之外,Redis还支持快照机制。快照是将当前数据库状态保存到一个RDB文件中,可以手动触发或者通过配置选项定期触发。快照只保存了数据库的最新状态,而不是增量的写操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值