【Redis学习】:redis持久化

redis持久化
redis的高性能是由于其将所有数据都存储在了内存中,为了使redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化、
redis支持两种方式的持久化,一种时RDB方式,一种时AOF方式,可以单独使用其中或者二者结合使用。
1、RDB持久化(默认支持,无需配置)
该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。
2、AOF持久化
该机制将以日志的形式记录服务器所处理的每一个写操作,在redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。
3、无持久化
我们可以通过配置的方式禁用redis服务器的持久化功能,这样我们就可以将redis视为一个功能加强版的memcache了。
4、redis可以同时使用RDB和AOF

RDB
优势
【Redis学习】:redis持久化
劣势
【Redis学习】:redis持久化
配置说明Snapshoting
快照参数设置
【Redis学习】:redis持久化
保存位置设置
【Redis学习】:redis持久化

AOF
优势
【Redis学习】:redis持久化
劣势
【Redis学习】:redis持久化

配置AOF
配置信息
【Redis学习】:redis持久化
AOF默认是关闭的
【Redis学习】:redis持久化
策略的选择
【Redis学习】:redis持久化

数据恢复演示
1、flushall操作,清空数据库
2、及时关闭redis服务器(防止dump.rdb),shutdown nosave
3、编辑aof文件,将日志中的flushall命令删除并重启服务即可。
步骤一:
在第二个窗口开启aop,并设置成总是保存没,然后重启redis
【Redis学习】:redis持久化
【Redis学习】:redis持久化
【Redis学习】:redis持久化
步骤二:
在第一个窗口中清空数据库
【Redis学习】:redis持久化
步骤三:
在第二个窗口中关闭redis
【Redis学习】:redis持久化
步骤四:
修改appendonly.aof文件,将最后的命令flushall删除
【Redis学习】:redis持久化
步骤五:
在第一个窗口启动redis,然后查询数据库内容
【Redis学习】:redis持久化