Memcached是一个高性能的分布式的内存对象缓存系统。通过使用Memcached可以支持高负载的网站系统,以分担数据库的压力。Memcached通过在内存里维护一个统一的巨大的Hash表来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。但是Memcached不能将数据进行持久化,因此严格意义来说,Memcached只能叫做一个缓存技术,而不能叫做数据库。
Memcached为了达到最快的读写速度将数据都保存在内存中。如果不将数据放到内存中,而是通过磁盘的I/O来读写数据,速度将会受到严重的影响。另一方面,在内存越来越便宜的今天,基于内存的存储方式将会越来越受到欢迎。
视频讲解如下:
Memcached的体系架构简单来说就是在内存中维护一张巨大的Hash表,并提供自己的一套路由算法来维护数据的操作。下图展示了Memcached的体系架构。
从上图中可以看出,Memcached的数据分布式存储是通过客户端应用程序来实现的,而不是像MongoDB或者Redis那样是在服务端实现的。