Redis 持久化之RDB和AOF
redis是一个内存数据库,当redis服务器重启,数据会丢失,我们可以将redis内存中的数据库持久保存到硬盘的文件中。
持久化的机制:
RDB方式
RDB:默认方式,不需要进行配置,默认就使用这个机制,在一定的间隔时间中,检测key的变化情况,然后持久化数据。
怎么使用这个默认的方式:
编辑redis.windows.conf的配置文件:
save 900 1:after 900 sec (15 min) if at least 1 key changed
save 300 10:after 300 sec (5 min) if at least 10 keys changed
save 60 10000:after 60 sec if at least 10000 keys changed
当我们修改为 save 60 2:在60秒至少修改2个key就会持久化一次
我们不再是简单直接打开redis-server.exe,需要通过cmd打开
再打开redis-cli.exe,执行存储:
在文件中就可以看到这个文件.rdb,再次打开刚才的数据可以再次访问到
优点:
适合大规模的数据恢复。
如果业务对数据完整性和一致性要求不高,RDB是很好的选择
缺点:
数据的完整性和一致性不高,因为RDB可能在最后一次备份时宕机了
AOF方式
AOF:日志记录的方式,可以记录每一条命令的操作,可以每一次命令操作后,持久化数据,就是和MySQL一样,一写就会保存在文件中。
Redis 默认不开启。它的出现是为了弥补RDB的不足,所以它采用日志的形式来记录每个写操作,并追加到文件中。
怎么使用这个AOF的方式
编辑redis.windows.conf的配置文件:
appendonly no -->appendonly yes(设置为yes就开启AOF)
# appendfsync always:每一次操作都进行持久化
appendfsync everysec:每隔一秒进行一次持久化
# appendfsync no :不进行持久化
我们不再是简单直接打开redis-server.exe,需要通过cmd打开
在文件中就可以看到这个文件
优点:数据的完整性和一致性更高
缺点:因为AOF记录的内容多,文件会越来越大,数据恢复也会越来越慢