加载中...
Memcached 是一款高性能的分布式内存缓存系统,由 Brad Fitzpatrick 于2003年为 LiveJournal 开发。架构极度简单:纯键值存储,不持久化,不支持复杂数据结构,但正因如此,它的吞吐量和延迟表现在同类产品中至今仍有竞争力,是大型网站减轻数据库压力的经典工具。

| 类型 | 分布式内存缓存系统 |
| 创建者 | Brad Fitzpatrick |
| 首次发布 | 2003年 |
Memcached 的哲学是「做好一件事」:将任意二进制数据以键值对形式缓存在内存中,支持设置过期时间(TTL),超出内存上限时使用 LRU 驱逐最旧的数据。协议极其简单,get/set/delete/incr 几个命令覆盖了99%的用途。
客户端负责数据分片:将键通过一致性哈希映射到多个 Memcached 节点,节点之间不通信,没有集群协调开销。这也意味着增减节点时会有部分缓存失效,需要应用层处理缓存重建逻辑。[1]
Redis 出现后,Memcached 的使用场景被持续压缩。但 Memcached 在特定场景仍有优势:多线程架构(Redis 主逻辑单线程)在多核服务器上能更充分利用 CPU;纯内存、无持久化的设计在内存利用效率上略胜一筹;Facebook 为内部使用改进的 Mcrouter 中间件让 Memcached 集群管理更灵活。
Facebook 在2013年发表了著名的「Scaling Memcache at Facebook」论文,描述了他们如何用数千台 Memcached 服务器支撑数十亿用户的访问——这篇论文至今仍是分布式缓存工程实践的必读材料。

| 类型 | 分布式内存缓存系统 |
| 创建者 | Brad Fitzpatrick |
| 首次发布 | 2003年 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧