Redis课堂笔记复习(一)

Redis持久化机制

Redis提供了两种持久化的方式:RDB和AOF。通俗地说RDB就是可以在设定的时间间隔内对redis的数据进行快照存储,而AOF就类似于系统的操作日志,把每一条服务器的写操作都记录下来,在持久化恢复数据时,依次执行记录下来的操作。

RDB方式

客户端可以直接通过BGSAVE或者SAVE命令创建内存快照。

  1. BGSAVE调用fork来创建一个子进程,子进程负责将快照写入磁盘,而父进程继续处理命令。
  2. SAVE命令执行过程中,不响应其它命令。

下面看一下RDB的配置文件内容。

# 时间策略
save 900 1
save 300 10
save 60 10000

# 文件名称
dbfilename dump.rdb

# 文件保存路径
dir /home/work/app/redis/data/

# 如果持久化出错,主进程是否停止写入
stop-writes-on-bgsave-error yes

# 是否压缩
rdbcompression yes

# 导入时是否检查
rdbchecksum yes

解释一下时间策略命令中的数字:

save 900 1

以上这条命令代表900s内如果有1条是写入命令,就触发一次快照存储。

# 如果持久化出错,主进程是否停止写入
stop-writes-on-bgsave-error yes

上面这个配置也是非常重要的一项配置,这是当备份进程出错时,主进程就停止接受新的写入操作,是为了保护持久化的数据一致性问题。如果自己的业务有完善的监控系统,可以禁止此项配置, 否则请开启。

如果想要禁用RDB配置,只需要在save的最后一行写上:

save ""

AOF方式

下面看一下AOF的配置

# 是否开启aof
appendonly yes

# 文件名称
appendfilename "appendonly.aof"

# 同步方式
appendfsync everysec

# aof重写期间是否同步
no-appendfsync-on-rewrite no

# 重写触发配置
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

# 加载aof时如果有错如何处理
aof-load-truncated yes

# 文件重写策略
aof-rewrite-incremental-fsync yes

appendfsync everysec 它其实有三种模式:

always:把每个写命令都立即同步到aof,很慢,但是很安全
everysec:每秒同步一次,是折中方案
no:redis不处理交给OS来处理,非常快,但是也最不安全

一般情况下都采用 everysec 配置,这样可以兼顾速度与安全,最多损失1s的数据。

aof-load-truncated yes 如果该配置启用,在加载时发现aof尾部不正确时,会向客户端写入一个log,但是会继续执行,如果设置为 no ,发现错误就会停止,必须修复后才能重新加载。

Redis持久化工作原理

待更新

RDB工作原理

待更新

AOF工作原理

待更新

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值