目录标题
1. Redis基础概念
-
什么是redis
redis:基于键值对的Nosql数据库
-
redis存储的五种基础数据结构
String(字符串),hash(哈希) ,list(列表) ,set(集合),zset(有序集合)
-
redis特点
redis命令执行速度非常快。
redis所有数据是放在内存中的,这是redis执行速度快的主要原因 redis使用的事单线程架构,预防了多线程可能产生的竞争问题。
reids能做的事情
redis提供建过期功能,实现缓存 提供发布订阅功能,实现简单的消息系统(一般消息系统还是使用MQ之类的中间件,术业有专攻) 简单的事务功能,一定程度保证命令执行的事务特性 流水线Pipeline功能,客户端能一次性执行多个命令,减少网络开销
-
redis RESP 协议
redis客户端与服务端协议,是建立在TCP协议基础之上的,RESP序列化协议简单高效,容易识别。
2.Redis持久化
-
RDB (Redis DataBase) 数据快照
RDB持久化是将当前进程数据生成快照,保存到硬盘的过程。此过程会造成长时间阻塞,RDB执行时,会阻塞redis服务器,知道RDB过程完成为止。
优点: RDB是紧凑压缩的二进制文件,是Redis在某个时间点上的数据快照,适用于数据备份。 Redis加载RDB文件的速度要快于AOF的方式 缺点: RDB没办法做到秒级持久化,因为执行成本高,阻塞服务器。 RDB文件在Redis各个版本之间不兼容
-
AOF (Append Only File) 以文本文件方式寄存数据
AOF以独立日志的方式记录每次写命令,重启的时候再重新执行AOF中的命令达到恢复数据的目的。AOF解决了数据持续化的实时性。
AOF与RDB的存储区别,导致两者执行的速度差异,AOF重新执行写指令,这个过程时间慢于RDB。
appendonly yes 指令开启AOF配置,默认是不开启AOF的。
AOF工作流程大致为:
1、所有的写入命令会追加到aof_buf(缓冲区)中。
2、AOF缓冲区根据对应的策略向硬盘做同步操作。
3、 随着AOF文件越来越大,需要定期对AOF文件进行重写,达到压缩
的目的。
4、当Redis服务器重启时,可以加载AOF文件进行数据恢复。