赞
踩
Redis是一种K-V数据库,它的数据也可以进行持久化操作。因为redis的数据都保存在内存中,如果不进行及时的持久化,可能就会因为重启导致数据的丢失。这时候就需要对redis进行持久化操作,将数据保存在磁盘上。
redis提供了两种持久化方式,分别是AOF和RDB。下面分别对这里持久化方式进行解析。
RDB是将redis 的数据生成快照保存在磁盘上。
RDB有多种实现方式,分别如下:
bgsave命令的工作流程如下:
执行bgsave命令,redis父进程判断当前是否存在子进程如AOF\RDB子进程,如果存在说明正在备份,直接返回。
父进程进行fork创建子进程,此时redis父线程被阻塞。
子进程创建完成,bgsave返回“* Background saving started by pid xxx”信息,并不再阻塞父进程,可以继续响应其他命令。
子进程进程创建RDB文件,根据内存生成临时快照文件,完成后对原有文件进行原子替换。
进程发送信号给父进程表示完成,父进程更新统计信息。
save m n规则
save m n规则表示每隔m秒,redis中有n个键改变则自动触发bgsave,在redis.conf文件中可以进行配置,并且可以组合使用。
RDB持久化配置:
save m n
#配置快照(rdb)促发规则,格式:save <seconds> <changes>
#save 900 1 900秒内至少有1个key被改变则做一次快照
#save 300 10 300秒内至少有300个key被改变则做一次快照
#save
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。