《redis》2-redis的基础组件

上一节讲到redis为了实现三高做的设计,这一节讲一下redis的基础组件,就像spring学习的时候,我们要分析spring的基础功能和基础组件,从总体上了解一个优秀的框架的基本情况。

redis也是一个优秀的架构,在学习redis的最前面,我们也要线懂得redis的基础架构,redis是内存存储系统。存储的数据都是key-value的键值对。key都是String类型,value的数据结构多一些,比如常用string,列表,集合,hash表。

redis支持的基本操作,put/get/delete/scan。这四个操作是存储/查询/删除/范围查找。

了解了redis支持的数据存储类型和基本操作,看一下单机版的redis的基础架构,不包括主从分片路由等组件

仔细一看,redis的模块划分,感觉跟mysql的差不多,毕竟两个都是数据存储,mysql分为连接器-缓存-分析器-优化器-执行器-执行引擎。这样的好处是解耦。单一职责原则,不同的组件承担的角色不一样,实现的功能也不一样。

讲到mysql的时候,想起来一件事儿,mysql在提高查询效率的时候用到了索引,在索引一节课里面,我们分析了集中索引数据结构

  1. 数组
  2. hash表
  3. b树
  4. b+树
  5. 跳表

在分析集中索引的优缺点时,我们讲到,hash表可以提供O(1)的访问速度,但是hash会随着数据的增大而产生冲突,且没有顺序,不支持范围查找。所以在mysql中用到了B+树,但是hash却被用在了redis中,一方面是因为hash是基于内存的,读取速度快,支持O(1),第二,hash也是键值对,天然支持key-value的数据类型。

redis最重要的是存储,所以内存模块非常重要,在redis的模型中,需要分配内存给新的数据,删除key之后,也要删除value。而且我们也希望启动服务的时候能够快速提供服务,这样需要我们数据持久化,所以内存模块中会有分配器和持久化器两个部分

猜你喜欢

转载自blog.csdn.net/David_lou/article/details/108997166