感觉平时面试的时候,经常被问到MySQL的底层数据结构。那么,Redis的底层原理是什么呢?Redis有很多种数据结构,每种数据结构的底层原理看起来很复杂,但是十分高效,本文对此进行总结!!!
参考资料:
1、https://blog.csdn.net/qq_43255017/article/details/108396782
2、https://fantianzuo.blog.csdn.net/article/details/114827837
3、https://www.bilibili.com/video/BV1nK4y1j7ab?from=search&seid=4642739251095379330
4、https://xie.infoq.cn/article/98c984f6462aec99ffc0c3b42
1. 概述
Redis存储是以键值对key-value
的形式存储的,key是String类型的,而value的类型比较多,有String、Hash、List、Set、ZSet五种基本的类型,还有Bitmap、HyperLogLog、Geospatial三种高级的数据类型。本文所探讨的底层数据结构,就是value的存储(不同的数据类型,它的存储方式有何不同)。
在Redis中有一个核心的对象叫做redisObject ,是用来表示所有的key和value的,用redisObject结构体来表示String、Hash、List、Set、ZSet这五种数据类型,那三种高级的数据结构是在这基础上的拓展。
redisObject的源代码在redis.h中,使用c语言