Redis是单线程的,这话搁以前,是横着走的,谁都知道的真理.现在不一样,Redis 变了.再说这句话,多少得有质疑的语气来跟你辩驳一番.意志不坚定的,可能就缴械投降,顺着别人走了. 到底是什么样的,各位看官请跟小莱一起往下: 图注:思维导图 Reactor模式 反应器模式,你可能不太认识,如果看过上篇文章的话应该会有点印象.涉及到 Redis 线程它是一个绕不过去的话题. 1.传统阻塞IO模型  在讲反应器模式前,这里有必要提一下传统阻塞IO模型的处理方式. 在传统阻塞IO模型中,由一个独立的…
文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于我用c也是好几年以前了,些许错误在所难免,希望读者能不吝指出. 曹工说Redis源码(1)-- redis debug环境搭建,使用clion,达到和调试java一样的效果 曹工说Redis源码(2)-- redis server 启动过程解析及简单c语言基础知识补充 曹工说Redis源码(3)--…
能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis的线程模型了解吗?为啥单线程效率还这么高? 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学. 我们一起巩固.突击面试官常问的一些面试题,加油!! 1.面试题 Redis和Memcached有什么区别?Redis的线程模型是什么?为什么Redis是单线程的但是还可以支撑高并发? 2.面试官心理分析 问这个…
  Redis是单线程还是多线程?以及处理模型. 线程:单线程 处理模型:参考书<Redis 设计与实现>P151-152 ![](https://ws1.sinaimg.cn/large/b35c33e9ly1g1p4dzlbukj20jq08twhg.jpg) ![](https://ws1.sinaimg.cn/large/b35c33e9ly1g1p4eoaqu4j20ju0jztf9.jpg) 上述图片解释说明: 1.文件事件: 是对套接字操作的抽象,每当一个套接字准备好执行操作(连…
我们平时看到介绍 Redis 的文章,都会说 Redis 是单线程的.但是我们学习的时候,比如 Redis 的 bgsave 命令,它的作用是在后台异步保存当前数据库的数据到磁盘,那既然是异步了,肯定是由别的线程去完成的,这怎么还能说 Redis 是单线程的呢? 其实通常说的 Redis 是单线程,主要是指 Redis 对外提供键值存储服务的主要流程,即网络 IO 和键值对读写是由⼀个线程来完成的.除此外 Redis 的其他功能,比如持久化. 异步删除.集群数据同步等,是由额外的线程执⾏的.在这…
作者:小林coding 计算机八股文网站:https://xiaolincoding.com 大家好,我是小林. 这次主要分享 Redis 线程模型篇的面试题. Redis 是单线程吗? Redis 单线程模式是怎样的? Redis 采用单线程为什么还这么快? Redis 6.0 之前为什么使用单线程? Redis 6.0 之后为什么引入了多线程? Redis 是单线程吗? Redis 单线程指的是「接收客户端请求->解析请求 ->进行数据读写等操作->发生数据给客户端」这个过程是由一个…
文章转自https://blog.csdn.net/chenyao1994/article/details/79491337 一.前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”.什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩.缓存穿透.缓存预热.缓存更新.缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis.Memcached等,而笔者目前最常用的也只有Redis这一种. 如果你在以前面试的时候还没有遇到过…
昨天写了一篇自己搭建redis集群并在自己项目中使用的文章,今天早上看别人写的面经发现redis在面试中还是比较常问的(笔主主Java方向).所以查阅官方文档以及他人造好的轮子,总结了一些redis面试和学习中你必须掌握的问题.事无巨细,不可能囊括到所有内容,尽量把比较常见的写出来.欢迎关注我的微信公众号:"Java面试通关手册",也可以加我微信:"bwcx9393"与我学习交流. 什么是Redis? Redis 是一个使用 C 语言写成的,开源的 key-valu…
为什么说Redis是单线程的以及Redis为什么这么快!   一.前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”.什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩.缓存穿透.缓存预热.缓存更新.缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis.Memcached等,而笔者目前最常用的也只有Redis这一种. 如果你在以前面试的时候还没有遇到过面试官问你<为什么说Redis是单线程的以及Redis为什么这么…
如果想了解 redis 与Memcache的区别参考:Redis和Memcache的区别总结 阿里的面试官问问我为何redis 使用跳表做索引,却不是用B+树做索引 因为B+树的原理是 叶子节点存储数据,非叶子节点存储索引,B+树的每个节点可以存储多个关键字,它将节点大小设置为磁盘页的大小,充分利用了磁盘预读的功能.每次读取磁盘页时就会读取一整个节点,每个叶子节点还有指向前后节点的指针,为的是最大限度的降低磁盘的IO;因为数据在内存中读取耗费的时间是从磁盘的IO读取的百万分之一 而Redis是…