Redis从入门到精通
常用的 SQL 数据库的数据都是存在磁盘中的,虽然在数据库底层也做了对应的缓存来减少数据库的 IO 压力。 由于数据库的缓存一般是针对查询的内容,而且粒度也比较小,一般只有表中的数据没有发生变动的时候,数据库的缓存才会产生作用。 但这并不能减少业务逻辑对数据库的增删改操作的 IO 压力,因此缓存技术应运而生,该技术实现了对热点数据的高速缓存,可以大大缓解后端数据库的压力。 主流应用架构 客户端在对数据库发起请求时,先到缓存层查看是否有所需的数据,如果缓存层存有客户端所需的数据,则直接从缓存层返回,否则进行穿透查询,对数据库进行查询。 如果在数据库中查询到该数据,则将该数据回写到缓存层,以便下次客户端再次查询能够直接从缓存层获取数据。 缓存中间件 Memcache 和 Redis 的区别 Memcache 的代码层类似 Hash,特点如下: 支持简单数据类型 不支持数据持久化存储 不支持主从 不支持分片 Redis 特点如下: 数据类型丰富 支持数据磁盘持久化存储 支持主从 支持分片 为什么 Redis 能这么快 Redis 的效率很高,官方给出的数据是 100000+QPS,这是因为: Redis 完全基于内存,绝大部分请求是纯粹的内存操作,执行效率高。 Redis 使用单进程单线程模型的(K,V)数据库,将数据存储在内存中,存取均不会受到硬盘 IO 的限制,因此其执行速度极快。