Redis为啥什这么快?有哪些持久化方式?区别是怎样的?

2021-12-15 14:32:38 浏览数 (2033)

redis是单线程,为什么这么快?

基于内存,绝大部分请求是纯粹的内存操作,CPU不是Redis的瓶颈。

避免了不必要的CPU上下文切换和其他竞争条件,比如锁操作等。
底层是使用多路I/O复用模型,非阻塞IO。
Redis6 后支持多线程,但是默认不开启。
redis有哪些持久化方式,分别说下他们的区别。
支持AOF和RDB持久化。

 
AOF
以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录。
支持秒级持久化、兼容性好,对于相同数量的数据集而言,AOF文件通常要大于RDB文件,所以恢复比RDB慢。

 
RDB
在指定的时间间隔内将内存中的数据集快照写入磁盘,可以指定时间归档数据,但不能做到实时持久化。
文件紧凑,体积小,对于灾难恢复而言,RDB是非常不错的选择,相比于AOF机制,如果数据集很大,RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快