Redis的持久化策略和淘汰策略(面试题)

本文介绍了Redis的两种持久化方式:RDB快照和AOF日志记录,以及多种淘汰策略,包括volatile-lru、volatile-ttl和allkeys-lru等,帮助读者理解如何配置Redis以提高数据安全性和效率。

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

一.持久化策略
Redis 提供了两种不同级别的持久化方式:RDB和AOF,可以通过修改redis.conf来进行配置。

1.RDB:把数据最终存储到 .RDB文件中
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启该模式。
在redis.window.conf(核心文件)中:

  save ""
# save 900 1        //至少在900秒的时间段内至少有一次改变K值就保存一次
# save xxx
# save 60 10000

2.AOF:以存储命令的方式存到 .AOF文件
AOF 持久化记录服务器执行的所有操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,默认关闭该模式。

如何开启aof模式:
appendonly yes         //yes 开启,no 关闭
# appendfsync always //每次有新命令时就执行一次fsync 
#这里我们启用 everysec
appendfsync everysec //每秒 fsync 一次
# appendfsync no      //从不fsync(交给操作系统来处理,可能很久才执行一次fsync)

redis是怎么保存数据?
redis为了考虑效率,保存数据在内存中.并且考虑数据安全性,还做数据持久化,如果满足保存策略,就会把内存的数据保存到数据rdb文件,还来不及保存那部分数据存放到aof更新日志中。在加载时,把两个数据做一个并集。

二.淘汰策略
淘汰一些数据,达到redis数据都是有效的。选择合适的淘汰策略进行淘汰。
常见的淘汰策略:

volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
allkeys-lru: 从所有数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值