加入收藏 | 设为首页 | 会员中心 | 我要投稿 莆田站长网 (https://www.0594zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

19图+11题带你面试通关

发布时间:2021-03-27 13:02:34 所属栏目:传媒 来源:互联网
导读:到了金三银四跳槽季,好多同学已经开始行动了。今天我来助力一把,送出这套redis面试题,助力大家通关。 1 redis为什么响应快 1.1数据保存在内存中 redis数据保存在内存中,读写操作只要访问内存,不需要磁盘IO。 1.2.底层数据结构 redis的数据以key:value的

到了金三银四跳槽季,好多同学已经开始行动了。今天我来助力一把,送出这套redis面试题,助力大家通关。

1 redis为什么响应快

1.1数据保存在内存中

redis数据保存在内存中,读写操作只要访问内存,不需要磁盘IO。

1.2.底层数据结构

redis的数据以key:value的格式存储在散列表中,时间复杂度o(1)。

redis为value定义了丰富的数据结构,包括态字符串、双向链表、压缩列表、hash、跳表和整数数组,可以根据value的特性选择选择最高效的数据结构。

1.3.单线程模型

redis的网络IO和数据读写使用单线程模型,可以绑定CPU,这避免了线程上下文切换带来的开销。

「注意:redis6.0对网络请求引入了多线程模型,读写操作还是用单线程。」

redis多线程网络模型见下图:核会一直监听新的socket连接事件的和已建立socket连接的读写事件,把监听到的事件放到事件队列,redis使用单线程不停的处理这个事件队列。这避免了阻塞等待连接和读写事件到来。

这些事件绑定了回调函数,会调用redis的处理函数进行处理。

2 redis底层数据结构

redis有5种数据类型,包括「字符串、列表、集合、有序集合和字典」。

redis底层的数据结构有6种,包括「动态字符串、双向链表、压缩列表(ziplist)、hash表、跳表(skip list)和整数数组」。

redis数据类型和底层数据结构有如下对应关系:

(编辑:莆田站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读