redis 持久化的两种方式: RDB(快照机制)和AOF(持久化日志)
RDB 快照机制
RDB持久化是在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork(叉)一个子进程,先将数据及写入临时文件,写入成功后,在替换之前的文件,用二进制压缩存储。
优点:(1)文件备份只有一个文件,容易查找恢复,(2)灾难恢复效率高;
缺点 : (1)如果在定时持久化之前出现宕机数据将丢失;(2)RDB 是通过fork子进程来协助完成持久化,如果数据集较大会导致服务器短时间内停止服务。
AOF持久化日志
-----可以通过参数appendonly来设置是否启用AOF
持久化以日志的形式记录服务器所处理的每一个写,删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
优点 :数据安全性高,可以配置同步持久化;
缺点 :灾难恢复效率低;
redis的使用场景
1、热数据存储。对于需要频繁读写的数据,可以存放到redis中,不用频繁的请求数据库。在设置策略持久化到数据库中。
2、token管理。用具登录成功后,生成token,存储到redis中,并设置过期时间,可以模拟session,用于做认证中心。
3、缓解数据库压力,大量并发请求访问数据库会造成数据库崩溃,可以使用redis做缓冲,先访问redis。
redis 为什么快
1、纯内存操作,所有操作都是在内存中进行。
2、单线程操作,单线程操作避免了频繁的上下文切换。
3、使用非阻塞I/O多路复用机制。客户端会产生具有不同事件类型的socket。在服务端,有一段I/O多路复用程序,将socke置于队列中,然后,将文件事件分派器,依次去队列中取,转发到不同的事件处理器中。