分布式是 Memcached 的主要特性,所以你可以在多台服务器上来安装 Memcached 来组建一个更大的缓存服务器。这样一来,Memcached 可以帮助我们使数据库的压力降到最低, 从而我们可以构建出更快的、更具扩展性的 WEB 应用。图一展示了 Memcache 如何与数据库端协同工作的情况。
Memcache 如何工作?
图一展示的流程,相信有开发过数据库应用的同学都不会陌生。我们来一步步的说明图中发生了什么事情:
- 检查用户请求的数据是缓存中是否有存在,如果有存在的话,只需要直接把请求的数据返回,这时候跟数据库就完全扯不上关系了。
- 如果请求的数据在缓存中找不到,这时候再去查询数据库。返回请求数据的同时,把数据存储到缓存中一份。
- 保持缓存的“新鲜性”,每当数据发生变化的时候(比如,数据有被修改,或被删除的情况下),要同步的更新缓存信息,确保用户不会在缓存取到旧的数据。
显而易见,Memcached 在高并发的数据查询和海量数据输出的情况下,可以起到很大的作用。因为访问 Memcached 中的内存数据,要比数据库的磁盘数据快的多。