文章 2024-05-22 来自:开发者社区

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?-- Redis多线程

你这样介绍整个设计。 当Redis启用了多线程之后,里面的主线程就要负责接收事件、创建连接、执行命令。Redis的IO线程就负责读写数据。 我用一个请求的处理过程来解释一下整个设计。当客户端发出请求的时候,主线程会收到一个可读的事件,于是它把对应的客户端丢掉可读的客户端列表。一个IO线程会被安排读写这个客户端发来的命令,并且解析好。紧接着主线程会执行 IO 线程解析好的命令,并且把响...

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?-- Redis多线程
文章 2024-05-19 来自:开发者社区

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?--epoll调用和中断

再介绍一下epoll的基本结构和系统调用 epoll里有两个关键结构。一个是红黑树,每一个节点都代表了一个文件描述符;另外一个是双向链表,也叫做就绪列表。 为了维护epoll的结构,有三个关键的系统调用。 epoll_create:也就是创建一个epoll结构 epoll_ctl:管理epoll里面那些文件描述...

文章 2024-05-18 来自:开发者社区

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?

今天来探究下Redis高性能的原因。 Redis是单线程的含义 在学习Redis的时候肯定听说过一句话:Redis是单线程的。实际上,Redis并不是单线程的。业界说Redis是单线程的,是指它在处理命令的时候,是单线程的。在Redis6.0之前,Redis的IO也是单线程的,但是在6.0之后也改成了多线程。 但...

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。