全国服务热线:400-6263-721

位置:广州IT培训学院 > 学校动态 > Redis中list底层的实现方式与区别

Redis中list底层的实现方式与区别

来源:广州IT培训学院时间:2021/12/30 11:56:51

  (1)问题分析

  考官主要想考察应聘者对Redis数据的理解和拓展,有没有深入的去理解过数据库。

  (2)核心问题讲解

  列表对象的编码可以是ziplist或者linkedlist。

  ziplist是一种压缩链表,它的好处是更能节省内存空间,因为它所存储的内容都是在连续的内存区域当中的。当列表对象元素不大,每个元素也不大的时候,就采用ziplist存储。但当数据量过大时就ziplist就不是那么好用了。因为为了增加他存储内容在内存中的连续性,插入的复杂度是O(N),即每次插入都会重新进行realloc。对象结构中ptr所指向的就是一个ziplist。整个ziplist只需要malloc一次,它们在内存中是一块连续的区域。

  linkedlist是一种双向链表。它的结构比较简单,节点中存放pre和next两个指针,还有节点相关的信息。当每增加一个node的时候,就需要重新malloc一块内存。

  (3)问题扩展

  获取当前同时还会问Redis数据库有几种数据类型,然后深入去问比如有没有深入了解过Redis,说说Redis里面list的底层实现,说说set数据类型为何支持去重等等,是一类拓展的问题。

  (4)结合项目中使用

  说说你做过的项目里哪些地方用到了Redis数据库。

  为什么要在项目中使用Redis数据库。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1980/news/467289/违者必究! 以上就是广州IT培训学院 小编为您整理 Redis中list底层的实现方式与区别的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721