一.持久化策略
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)中挑选最近最少使用的数据淘汰