Redis --- 简介

缓存中间件 --- Memcache  和 Redis 的区别

Memcache : 代码层次类似于Hash 

一、支持简单数据类型

二、不支持数据持久化存储

三、不支持主从

四、不支持分片

Redis

一、数据类型丰富

二、支持数据磁盘持久化存储

三、支持主从

四、支持分片

为什么Redis 能这么快

100000 + QPS (QPS query per second 即每秒查询次数)

一、完全基于内存的,绝大数请求是内存操作,执行效率高

Redis 采用的是单线程 单进程模型的KV 数据库,由C语言编写,将数据储存在内存里面,读写操作都不会受到硬盘IO的限制,所以速度极快

二、数据结构简单,对数据操作也简单。Redis 不使用表,它的数据库不会预定义强制用户去Redis关联。因此性能相比关系型数据库高出不止一个量级,存储结构就是键值对。类似于HashMap

三、采用单线程,单线程也能处理高并发请求,想多核可启动多实例。

四、采用多路I/O复用模型,非阻塞IO

什么是多路I/O复用模型?

FD: File Descriptor 文件描述符

一个打开的文件通过唯一的描述符进行引用,该描述符是打开文件的元数据到文件本身的映射。

 

Redis 采用的I/O多路复用函数:epoll / kqueuq / evport / select 

一、因地适宜

二、优先选择时间复杂度为O(1)的 I/O 多路 复用函数作为底层实现

三、以时间复杂度为 O(n)的 select 作为保底

四、基于react 设计模式监听 I/O 事件

猜你喜欢

转载自blog.csdn.net/xinbumi/article/details/89684496