Redis之持久化

1.RDB方式

RDB方式的持久化是通过快照完成的,当符合一定条件时redis会自动将内存中的所有数据生成一份副本并存储在硬盘上,这个过程即为快照。redis会在以下几种情况下对数据进行快照:

 

  • 根据配置规则
  • 执行save或bgsave命令
  • 执行flushall命令
  • 执行复制

1.1根据配置规则进行自动快照

同时存在多个条件,条件之间是或的关系。save 900 1的意思是900秒内有一个或一个以上的键被更改则进行快照。redis会默认将快照文件存储在当前进程中的工作目录中的dump.rdb文件中,可以通过配置dir和dbfilename两个参数分别指定快照文件的存储路径和文件名。

1.2 save命令

当执行save命令时,redis同步地进行快照操作,在快照执行的过程中会阻塞所有来自客户端的请求。当数据库的数据比较多时,这一过程会导致redis较长时间不响应,所以要尽量避免在生产环境中使用这一命令。

1.3 bgsave命令

需手动执行快照时推荐使用bgsave命令。bgsave命令可以在后台异步地进行快照操作,快照的同时服务器还可以继续响应来自客户端的请求。

2. AOF

默认情况下redis没有开启AOF(append only file)方式的持久化。修改appendonly参数启用

AOF和RDB文件位置相同,都是通过dir参数设置得,默认文件名是appendonly.aof。

在redis中可以通过修改appendfsync参数设置同步的时机:

no表示不主动进行同步操作,而是完全交由操作系统来做(每30秒一次)。

redis-check-aof --fix appendonly.aof:修复aof文件。

redis允许同时开启AOF和RDB,既保证了数据安全又使得进行备份等操作十分容易。此时重新启动Redis后redis会使用AOF文件来恢复数据,因为AOF方式的持久化可能丢失的数据最少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值