Redis入门:第八章 Redis持久化-第九章 课程总结

落爺英雄遲暮 提交于 2019-11-28 08:32:42

第八章 Redis持久化

Redis的高性能体现在所有的数据都存储在了内存中,为了使 redis在重启之后保证数据不丢失。要将redis的数据从内存当中同步到硬盘,这个过程称之为持久化操作。
两种方式:RDB和AOF方式

持久化使用方式:

1.单独RDB持久化(默认)
在指定的时间间隔里,将内存中的数据集快照写入到磁盘。比如指定30s,将数据写入磁盘一次
2.AOF方式
以日志的方式记录服务器的每一个操作,在redis服务器启动之初,会读取该文件,然后来重新构建数据库,这样保证启动后的数据是完整的。
3.无持久化
通过配置,禁用持redis服务器的持久化功能,当作缓存机制
4.同时使用RDB和AOF

RDB持久化方式:

优势:
1.所有数据库只包含一个文件,对于文件备份很完美。比如每个小时归档一次最近24小时的数据,同时每天归档最近30天的数据。这样的备份策略,一旦系统出现灾难性的故障,可以非常容易地进行恢复;
2.同时对于灾难恢复而言,可以非常轻松的将一个单独的文件压缩后再转移到其他存储介质中;
3.性能最大化,对于redis的服务进程,再开始持久化时唯一需要做的是分叉出一些进程,之后再由子进程完成持久化工作,这样就可以极大地避免服务器执行I/O操作,相比AOF机制,如果数据集很大,启动效率很高。

缺点:1.如果向保证数据的高可用性,最大限度避免数据的丢失。系统在定时持久化之前宕机,来不及往硬盘上写,数据就丢失了;
2.通过fork分叉子进程协助完成持久化工作,如果数据集很大,可能导致服务器停止几百毫秒甚至几秒。

配置:redis.conf

每900s至少有一个key发生变化,就写一次。默认的。
同时下边还有保存路径:
dir ./在当前路径下

AOF持久化方式:

优势:1.带来更高的数据安全性。每s同步,每修改同步,不同步三种同步策略。每秒同步也是异步的,如果宕机,1s内修改的数据就丢失了;每修改同步,将其视为同步持久化,每一次数据变化,都会被立即记录在磁盘里,效率也是最低的,但是最安全。
2.对于日志文件写入操作是append,追加模式,因此写入过程中即使宕机,也不影响写入日志的内容。如果本次操作之写入了一般数据就出现了崩溃,这种也不担心,下一次启动之前通过:redis-check-aof 工具解决数据一致性的问题。
3.如果日志过大,redis自动启动重启机制。以append模式不断将修改的数据写入老磁盘文件,同时redis创建一个新文件来记录此期间产生了哪些修改命令被执行了。因此在进行重写(还是重启)切换时可以更好保证数据的安全性。
4.aof包含一个格式非常清晰,易于理解的日志文件来记录所有的修改操作。事实上也可以通过这个文件完成数据的重建。

劣势:1.对于一个相同数量的数据集而言,aof文件比rdb文件大
2.aof运行效率低于rdb。 因为aof每修改就同步,效率低。

配置:

打开redis.conf
Appendonly no //默认aof关闭的(变为yes打开)
有一个appendonly.aof
下边有三行关于同步策略的设置:

修改完,保存配置文件。
再关闭cli,重新启动。

可以很方便的用于数据库的还原。

第九章课程总结:

介绍了NoSQL,什么是Redis。重点掌握Jedis,通过程序进行操作。
数据类型,最主要的字符串和哈希重点掌握。Keys通用操作需要了解,redis特性,多数据库;事务的支持。最后介绍持久化,最主要用程序操作redis。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!