redis数据持久化

    Redis是基于内存的数据库,内存数据库有个弊端,就是宕机或者断电时,内存的数据会丢失。因此redis提供了两种数据持久化的方式

1.内存快照

内存快照方式是将内存中的数据以二进制方式写,默认文件名 dump.rdb。redis客户端提供save和bgsave命令告诉redis需要做一次内存快照

save

save命令在主线程中保存内存快照,由于redis由单线程处理所有请求,因此save命令可能会阻塞其他用户的请求

bgsave

bgsave会fork出一个子进程来保存内存快照,主进程继续处理客户端请求,从而不会阻塞其他客户端的请求
内存快照的相关配置如下(可以自由进行灵活的配置)
save 900 1
save 300 10
save 60 10000

save  900 1 表示 在900秒内有一次数据更改就进行一次内存快照操作

2.日志追加(AOF)

日志追加方式是把增加或修改数据的 命令通过write函数追加到文件尾部(appendonly.aof),redis重启时读取appendonly.aof的命令,从而把数据写入到内存。但是,操作系统内核I/O接口可能存在缓存,所以导致数据不能立即写入到appendonly.aof文件中,可能会导致部分数据的丢失。可以在配置文件中做如下配置
appendonly yes         #启动日志追加的方式
appendonly always      #每次修改命令就强制写入磁盘
#appendonly everysec   #每秒强制写入
#appendonly no         #是够写入依赖操作系统

日志追加的方式会带来appendonly.aof 文件的冗余,比如调用了1000次incr key 命令,appendonly.aof中就会保存1000条incr key命令,其实一次set key 1000就够了。redis也提供了bgrewriteaof命令来压缩日志文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值