redis持久化

持久化
    我们知道,redis数据库的数据都是存放在内存中的,虽然很高效,但是存在一个很严重的问题,如果突然停电,那我们的数据就全部丢失了。
    这个时候我们就要持久化,我们需要将我们的数据备份到硬盘上。
    持久化的实现有两种方案:
    1.RDB:直接保存当前已经存储的数据,相当于复制内存中的数据到硬盘上,需要修复数据时读取即可。
    2.AOF:保存我们存放数据的所有过程,只要将整个过程完整地推演一遍即可。


    RDB:

save 
-- 注意上面这个命令是直接保存,会占用一定时间,也可以单独开一个子进程后台执行保存 
bgsave
--创建子线程执行保存

执行save命令,会在redis文件目录中生成.rdb文件,redis通过读取rdb文件将数据重新加载。         

我们可以在配置文件中设置自动保存,并设定在一段时间内写入多少数据时,执行一次写操作:

save 300 10 #在300s内有10个写入,则自动保存
save 60 10000 #在60s内有10000次写入,则自动保存

AOF:AOF会以日志的形式将我们每次执行的命令进行保存,服务器重启时会将所有命令依次执行,通过这种方式将数据恢复。

但是,我们多久写一次日志呢?我们可以自己配置保存策略,有三种策略:

always:每次执行写操作都会保存一次。

everysec:每秒保存一次(默认配置),这样就算丢失数据也只会丢失一秒内的数据。

no:看系统心情保存

可以在配置文件中配置

appendonly yes

#appendfsync always
appendfsync everysec
#appendfsync no

redis有一个AOF重写机制进行优化,比如我们执行了这样的语句

lpush a 333
lpush a 444
lpush a 555

实际上用一条语句也可以实现

lpush a 333 444 555

我们可以输入命令来手动执行重写操作

bgrewriteof

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值