我感觉redis这个缓存真的太好用了,所以很感兴趣,特来研究一番
首先说一下redis 的持久化技术
什么叫持久化呢?
例如事务的持久性一样,就是把数据永久保存起来,内存是不能存东西的,因为一断电,缓存就会清除,但是他可以提高读写效率,所以我们要保证数据的能永久的存在我们会放到磁盘中。这就是所谓的持久化
那redis 的持久化有几种呢
1、RDB
原理就是,redis服务器每个时间间隔会将一个内存数据集,生成一个快照(也就是一个备份文件替换原来的备份文件)保存在磁盘中,每当重启redis时,都会获取这个备份文件,读到内存中, 实现就是,redis会创建一个fork 子进程去做这个生成快照的事情,压缩成2进制文件,并持久化到磁盘。
缺点:就是生成快照之后如果这持久化到磁盘的过程中宕机了,就会导致数据丢失、因为是使用一个子进程去做,所有数据量大的话 就给服务器很大的压力
优点:效率高,备份文件就一个,便于查找
2、AOF
原理就是以日志的方式记录增删改的命令,并追加到文件后面,文件是以文本的形式,所以可以打开查看命令,因为是每增加一个命令,都会记录,并保持在磁盘中,所以可以实时增量同步到磁盘中,文件的存储结构是RESP通讯协议
RESP 是redis客户端和服务端之前使用的一种通讯协议;
RESP 的特点:实现简单、快速解析、可读性好