IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

分布式缓存系统 Memcached 入门

这一客 2010-11-24 21:14:57 累计浏览 16,244 次
本机暂存

维基百科上对 Memcached 的介绍是一个分布式的缓存系统, 但是 Memcachd 到底是什么意思,有什么作用呢?缓存一般用来保存一些经常被存取的数据和资源(例如:浏览器会将访问过的网页会话缓存起来),因为通过缓存来存取数据要比从磁盘存取同样的数据要快得多。所以 Memcached 顾名思义,意味着 “内存缓存”,所有缓存的内容都在服务器的内存中。内存中的这些缓存数据可以通过 API 的方式被存取。数据是以 key/value 的配对方式存在的,就像一个很大的 Hash 表。

分布式是 Memcached 的主要特性,所以你可以在多台服务器上来安装 Memcached 来组建一个更大的缓存服务器。这样一来,Memcached 可以帮助我们使数据库的压力降到最低, 从而我们可以构建出更快的、更具扩展性的 WEB 应用。图一展示了 Memcache 如何与数据库端协同工作的情况。

图一:Memcache 如何和数据库协同工作


Memcache 如何工作?

图一展示的流程,相信有开发过数据库应用的同学都不会陌生。我们来一步步的说明图中发生了什么事情:

检查用户请求的数据是缓存中是否有存在,如果有存在的话,只需要直接把请求的数据返回,这时候跟数据库就完全扯不上关系了。
如果请求的数据在缓存中找不到,这时候再去查询数据库。返回请求数据的同时,把数据存储到缓存中一份。
保持缓存的“新鲜性”,每当数据发生变化的时候(比如,数据有被修改,或被删除的情况下),要同步的更新缓存信息,确保用户不会在缓存取到旧的数据。


翻译:avenge
原文链接:http://www.developer.com/features/article.php/52691_3901666_1/Getting-Started-with-Memcached-Distributed-Memory-Caching.htm

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 30分钟3300%性能提升――python+memcached网页优化小记 (累计阅读 13,742)
  2. 关于memcache分布式一致性hash (累计阅读 11,820)
  3. Cacti 添加 Memcached 监控 (累计阅读 9,365)
  4. Redis和Memcached的区别 (累计阅读 8,071)
  5. php缓存与加速分析与汇总 (累计阅读 7,889)
  6. Using MySQL as a NoSQL (累计阅读 7,109)
  7. 系统架构的一些思考 (累计阅读 6,793)
  8. Twitter架构图(cache篇) (累计阅读 6,119)
  9. 谈谈Facebook的聊天系统架构 (累计阅读 5,731)
  10. 简单理解Memcached的Slab Allocation (累计阅读 5,521)