Skip to content

Latest commit

 

History

History
51 lines (36 loc) · 2.54 KB

2.redis缓存.md

File metadata and controls

51 lines (36 loc) · 2.54 KB

缓存

1. 什么是缓存?

缓存是⼀个高速数据交换的存储器,使用它可以快速的访问和操作数据。

缓存的本质,将热点资源(高频读、低频写)提前放入离用户最近、访问速度更快的地方,以提高访问速度。

2. 缓存 VS 数据库

相比于数据库而言,缓存的操作性能更高

  1. 缓存⼀般都是通过 key-value 查询数据,因为不像数据库⼀样还有查询的条件等因素,所以查询的性能⼀般会比数据库高;
  2. 缓存的数据是存储在内存中的,而数据库的数据是存储在磁盘中的,因为内存的操作性能远远大于磁盘,因此缓存的查询效率会高很多;
  3. 缓存更容易做分布式部署(当⼀台服务器变成多台相连的服务器集群),而数据库⼀般比较难实现分布式部署,因此缓存的负载和性能更容易平行扩展和增加。

3. 内存数据库和NoSQL区别

  1. NoSQL与内存数据库有交集,NoSQL不一定是内存数据库(如mongodb是文档型数据库),内存数据库不一定是Nosql,存在关系型的内存数据库,如SQLite,MySQL.
  2. 内存数据库数据是完全保存在内存中的,一旦掉电,内存内数据将完全丢失,但是大部分内存数据库会定期将数据写入磁盘,对容灾有帮助,但是在发生掉电时未来得及刷入磁盘的数据将会丢失。
  3. 内存数据库的优势在于高性能,所有的操作都是在内存中进行的,从而降低了IO操作,主要应用于一些对实时性要求很高的应用中。

几种数据库对比

Memcache

很早出现的NoSql数据库
数据都在内存中,一般不持久化
支持简单的key-value模式,支持类型单一
一般是作为缓存数据库辅助持久化的数据库

Redis

几乎覆盖了Memcached的绝大部分功能
数据都在内存中,支持持久化,主要用作备份恢复
除了支持简单的key-value模式,还支持多种数据结构的存储,比如 list、set、hash、zset等。
一般是作为缓存数据库辅助持久化的数据库

MongoDB

高性能、开源、模式自由(schema  free)的文档型数据库
数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能
支持二进制数据及大型对象
可以根据数据的特点替代RDBMS ,成为独立的数据库。或者配合RDBMS,存储特定的数据