Redis持久化(快照)

Redis提供两种不同的持久化方法来将数据存储到硬盘中来。一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据写入到硬盘里面。另一种方法叫之追加文件(append only File,AOF),它会在执行写入命令的时候,将被执行的写命令复制到硬盘里面。这两种方法既可以同时使用,又可以单独使用,具体的使用哪种持久化方法,需要根据用户的数据以及应用来决定。

以下是一些常用的配置项:

save 900 1   #900秒钟内有1次修改

stop-writes-on-bgsave-error yes  #在保存出错时停止写入

rdbcompression yes   #是否压缩

dbfilename "dump.rdb"  #快照文件名称

dir "/usr/redis/sbin/"   #快照和AOF文件的保存路径

------------------AOF---------------------

appendonly yes    #是否启用AOF

appendfilename "appendonly.aof"    #AOF文件名称

appendfsync everysec   #每秒执行一次AOF操作

no-appendfsync-on-rewrite no   #在执行同步操作时是否执行AOF操作

auto-aof-rewrite-percentage 100    #在AOF文件超过100%时执行压缩

auto-aof-rewrite-min-size 64mb     #在AOF文件超过64MB时执行压缩

创建快照的方法有以下几种:

1.执行BGSAVE命令,Redis会创建一个子进程,然后子进程负责将快照写入硬盘

2.执行SAVE命令,Redis在快照创建完之前不再相应其他任何命令。不常用

3.如果用户设置了save配置选择,Redis会自动触发BGSAVE命令

4.当Redis通过Shutdown命令接收到关闭服务器的请求时,会执行SAVE命令

5.当一个Redis服务器连接另一条Redis服务器,并向对方发送SYNC命令来开始一次复制操作时,如果主服务器没有在执行BGSAVE命令,那么主服务器会执行BGSAVE命令。

在使用快照持久化保存数据时,一定要记住:如果系统真的发生崩溃,用户将丢失最近一次生成快照之后更改的所有数据。因此,快照持久化只适用于那些即使丢失一部分数据也不会造成问题的应用程序,而不能接受丢失数据的应用程序可以考虑使用AOF持久化。












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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值