中间件面试题

Redis相关面试题

此题是xx位面试题

(1)Redis Cluster,在一个请求过来的时候,数据分布在哪个节点, 使用的是有哪些算法?

 redis cluster 用不同的算法,就决定了数据如何分布到这些节点上去。

  • hash算法
  • 一致性hash算法
  • hash slot算法

(2)Redis为什么是高性能的?

  • 基于内存的实现
  • 高效的数据结构
  • 合适的线程模型( I/O多路复用模型, 单线程模型)

  • 合理的数据编码(String,List,Hash,Set,Zset)

(3)Redis 为什么单线程还能这么快?

通常来讲,单线程处理能力要比多线程差,那么为什么Redis使用单线程模型会达到每秒万级别的处理能力呢?可以将其归结为三点:

  • 第一:纯内存访问,Redis将所有数据放在内存中,内存的响应时长大约为100纳秒,这是Redis达到每秒万级别访问的最重要的基础。
  • 第二:非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间
  • 第三:单线程避免了线程切换和竞态产生的消耗。

你可能感兴趣的:(面试题,中间件)