为什么要对redis进行持久化?
redis是一个内存数据库(非关系型数据库),当redis服务器重启,或电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。
1.Redis持久化思想
redis操作时,首先操作的都是内存中的数据。redis根据自身的配置选择不同的持久化方式,定期将内存中的数据保存到本地磁盘中,当redis重启服务时,首先会根据配置文件中指定的持久化文件恢复内存数据。
2.RDB模式
特点:
-
定期实现数据备份,但是可能丢失数据;
说明:如果实现用户操作1000次进行一次备份,当redis宕机时,会有未完成的数据丢失 -
该操作的执行效率最高;
-
该持久化方式是redis的默认策略;
-
RDB模式做的是内存的快照,能够有效的节省磁盘空间,控制持久化文件的大小;
说明:相当于照相机,每次快照redis内存然后覆盖之前的.rdb文件; -
RDB模式持久化文件是加密的。
3.AOF模式
特点:
-
AOF模式默认是关闭的。(需要人为开启)
-
AOF模式可以实现数据的实时备份。
说明:AOP模式就是备份记录用户操作的全部过程! -
然后存到持久化文件中,redis宕机时,读取持久化文件中每一行命令执行的结果,然后把结果给redis;
-
AOF的执行效率相对RDB模式低;
-
AOF模式做持久化操作时,对原有的持久化文件做追加操作;
-
AOF的持久化文件,内容铭文保存
说明:既然需要读取就不能加密
4.持久化条件配置
save开头的一行就是持久化配置,可以配置多个条件(每行配置一个条件),每个条件之间是“或”的关系
“save 900 1”表示15分钟(900秒)内至少1个key被更改则进行快照
“save 300 10”表示5分钟(300秒)内至少10个key被更改则进行快照
扩展
如果redis宕机,恰好持久化文件又损坏怎么办?
配置redis主从,redis宕机后可以从从机复制持久化文件,一运行就可以了。