Redis 复盘

2021-12-29  本文已影响0人  莫妮卡笔记
image.png

Redis 复盘

一、应用层

Redis是内存数据库、他的所有操作都是在内存中去执行、所以他效率也非常高;虽然他也有持久化的操作、比如 RDB 全量 、AOF 的增量 但是他在不开启AOF的情况下效率是不会被影响的。而RDB存储也只是镜像备份,通过fork子线程来操作,所以不影响客户端对Redis服务端的读写性能。

Redis也提供了很丰富的数据结构我们可以根据业务情况去选择比如常用的string/hash/set/list等等....

二、网络层

Redis网络层是通过单线程Reactor模型来处理客户端/服务端连接的。而Reactor 底层用的IO多路复用Epoll技术来实现,而Epoll 处理多少连接是受限于系统句柄数,而系统句柄数受限于系统物理内存,所以在物理内存够用的情况下能够同时处理非常高的连接数;理论上是无上限的。
这也是Redis官网数据说能够秒级处理10WQPS的勇气。

在Redis6.0以后使用的是多线程来实现、其实也是Reactor的加强版;单Reactor多线程,其实弥补了大Key处理的能力,因为在单Reactor模型的情况下,如果有大Key处理会有阻塞的情况影响了整体处理指令效率,通过多线程来弥补了这个缺点,提高了整体吞吐率(所以很多时候别人说memcached处理大Key能力优于Redis就是用了多线程)。

三、存储层

Redis存储层有两种模式分别RDB、AOF;

如果系统同时开启RDB/AOF 其实就是一个NOSQL数据库了、但是在系统挂了恢复的时候会优先使用AOF来恢复

四、数据结构层

五、架构层

redis特点就是协调者+主从+集群+分片

六、Redis缺点

七、使用场景

。。。。结合自己业务来看。

上一篇 下一篇

猜你喜欢

热点阅读