面试的时候,
面试官问,redis是单线程还是多线程
答:单线程
面试官再问,单线程,为什么还快呢?不应该是多线程才更快吗?那这是不是有什么矛盾啊?
答:啊???。。。。。。(心里卧槽,就是单线程所以快啊,还说多线程什么事,难道是我哪块的知识点出了问题了?)

对,这是一次真实的面试,没想到快被用烂的redis,竟然让人这样问住了,其实道理我知道,但一时突然语塞,真不知道怎么解释好,其实是一个坑。

以下是复盘的回答:

redis是单线程的,是因为redis是基于内存的,所以他的性能和cpu没有关系,而是和内存大小与带宽有关,所以既然和cpu没什么关系,那使用单线程就比多线程好多了,最明显的一点就是不用担心多线程的锁的问题了,而且如果觉得对于多核的c pu来说,单线程是不是有点让其他核闲置了,那么这其实就是另外一个问题了,我们完全可以起多个redis进程,比如4核就起4个redis进程,由于redis是key-value型数据库,数据之间不像关系型数据库那样有约束,只要客户端能分清哪些进程上存放哪些key就可以了。

redis单线程为什么还快的个人解释相关推荐

  1. 6.Redis单线程为什么这么快?

    线程模型 大家都知道,Redis是单线程的,为什么采用单线程的Redis也会如此之快呢?接下来我们分析其中缘由. 严格来说, Redis Server是多线程的, 只是它的请求处理整个流程是单线程处理 ...

  2. java基础巩固-宇宙第一AiYWM:为了维持生计,Redis基础Part6(Redis的应用场景、Redis是单线程的速度还快、Redis线程模型:Reactor模式、事件、发布订阅、管道)~整起

    PART1-1:为什么Redis是单线程的 Redis单线程是指: Redis的网络IO和键值对读写是由一个线程来完成的.这也是 Redis 对外提供键值存储服务的主要流程.Redis的其他功能,比如 ...

  3. redis特点单进程单线程高性能服务器,Redis为什么是单线程?Redis又为什么这么快!...

    Java相关的面试都会问到缓存的问题,基础一点的会问到什么是"二八定律".什么是"热数据和冷数据",复杂一点的会问到缓存雪崩.缓存穿透.缓存预热.缓存更新.缓存 ...

  4. redis单线程原理___Redis为何那么快-----底层原理浅析

    redis单线程原理 redis单线程问题 单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程. 1. 为什么说redis能够快速执行 ...

  5. 比 Redis 还快,更省内存,惊爆了!

    点击关注公众号:互联网架构师,后台回复 2T获取2TB学习资源! 上一篇:Alibaba开源内网高并发编程手册.pdf 最近,一位前谷歌.前亚马逊的工程师推出了他创作的开源内存数据缓存系统 Drago ...

  6. 比 Redis 还快,更省内存,开源,惊爆了!

    今年年中,一位前谷歌.前亚马逊的工程师推出了他创作的开源内存数据缓存系统 Dragonfly,用 C/C++ 编写,基于 BSL 许可(Business Source License)分发. 根据过往 ...

  7. redis单线程为什么效率很高

    转自:https://blog.csdn.net/u010870518/article/details/79470556 一.前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么 ...

  8. Redis凭啥这么快?只能做缓存?架构师道出了真相(颠覆你的认知)

    Redis到底有多快 Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库,由C语言编写,官方提供的数据是可以达到100000+的QPS(每秒内查询次数).这个数据不比采用单进程多线程 ...

  9. java面试(二十五)--(1)redis为什么读写速率快性能好(2)说说web.xml文件中可以配置哪些内容(3)和的区别(4)扑克牌顺子

    1. redis为什么读写速率快性能好? 1.Redis将数据存储在内存上,避免了频繁的IO操作 2.Redis其本身采用字典的数据结构,时间复杂度为O(1),且其采用渐进式的扩容手段 3.Redis ...

最新文章

  1. Kotlin代码检查在美团的探索与实践
  2. script标签中的async和defer
  3. r语言ggplot画两条曲线_R语言作图——Line plot with error
  4. java中的递归问题_java 递归问题
  5. 解决SQLPLUS无法使用上下箭头
  6. qt linux 视频教程,详解 QT 显示视频 Linux下 Qt 和 Xv实现
  7. python图像分割算法_SLIC算法分割超像素原理及Python实现
  8. Newifi mini R6850/R6830路由器刷breed+Padavan固件
  9. java 判断是否夏令时_Java日期夏令时的问题
  10. 魔方cfop公式软件_魔方与群论(一)(不要被标题吓到,高中生就可以看)
  11. smb.conf - Samba组件的配置文件
  12. [高数][高昆轮][高等数学上][第一章-函数与极限]01.映射与极限
  13. java中画幅相机推荐_比全画幅更大 平民中画幅相机推荐
  14. 使用Python连接阿里云物联网
  15. 关于线性空间和线性映射
  16. 格式化格林威治时间(Wed Aug 01 00:00:00 CST 2018)
  17. 这样的C盘或许还有?救救C盘......
  18. 英文论文在LATEX修改部分单词的颜色
  19. android 电子书源码,翻页效果
  20. java main 方法使用 HttpClients发送请求 不打印debug日志

热门文章

  1. oracle函数 INITCAP(c1)
  2. 万恶之源 - Python运算符与编码
  3. GLSL中 Billboard和Point的顶点空间变换
  4. 改变网页标签图片(favicon)
  5. JMF调用摄像头粉屏的问题(win10 64位系统)
  6. Receiver type ‘X’ for instance message is a forward declaration
  7. Element-UI-快速入门(极简教程)
  8. GitHub基础——下载和上传
  9. Leetcode-437. 路径总和 III(Java)
  10. 【剑指offer】面试题05:替换空格(java)