官方地址:
http://memcached.org/
【简介】
为什么会有Memcache和memcached两种名称?
其实Memcache是这个项目的名称,而memcached是它服务器端的主程序文件名。
Memcache官方网站:http://www.danga.com/memcached,http://memcached.org/
针对WEB2.0,出现了以下的特点:
许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。
这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
memcached作为高速运行的分布式缓存服务器,具有以下的特点。
• 协议简单
• 基于libevent的事件处理
• 内置内存存储方式
• memcached不互相通信的分布式
【个人心得】
集中分布式技术(不是很流行)
magent,moxi
现在一般都是用客户端的一致性hash解决分布式集群问题
【过期淘汰】
- Lazy Expiration:即使设置超时,也不会主动回收内存,只有当get时再主动查看记录是否过期,即能解释为何Memcached吃内存只进不出
- Last Recently Used:当内存空间不足分配时,扫描最后几条条记录,通过LRU方式淘汰掉。可通过-M参数禁用----就是在一个时间窗口内,寻找调用次数最少的淘汰掉,而不是总时间里,调用次数最少的。
陷阱
陷阱1:每一个slab有一个自己的LRU链表,且slab间不共享链表。
陷阱2:未过期的数据可能比已过期的数据先被抹掉。
【进程模型】
典型的多线程,由一个监听主线程和多个worker子线程组成,主线程监听网络连接,接受请求后,将句柄通过pipe传递给worker。使用Libevent处理事件。多线程能够充分发挥多核CPU的作用,但引入了锁的问题,比如stats命令(全局变量加锁计数),会带来性能损耗(较小)。
- 大小: 31.8 KB
- 大小: 66.4 KB
- 大小: 122.9 KB
分享到:
相关推荐
Memcached 是一个高性能的分布式内存对象缓存系统,广泛应用于许多大型网站,如Facebook、Twitter等,用以缓解数据库负载,提升系统性能。它的工作原理是将数据存储在内存中,以便快速访问,从而减少对数据库的直接...
#### 一、初识Memcached **Memcached** 是一款高性能的分布式内存对象缓存系统,主要用于减少数据库负载,提高动态Web应用的速度。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而极大地提高了网站的...
1.1.5 memcached:是一款广泛使用的内存对象缓存系统,主要用于减少数据库负载。 1.1.6 Hypertable:是一个基于Bigtable模型的开源分布式数据库,专注于大数据量的列式存储。 选择Key-Value Store的原因主要有: ...
memcachedb是一款基于memcached的Key-Value存储系统,它继承了memcached的高性能特性,同时增加了数据持久化功能。这意味着memcachedb不仅能够作为高速缓存使用,还可以将数据永久保存在磁盘上,以防止系统重启后...
在初识Redis章节中,读者可以了解到Redis的数据类型、持久化机制、主从同步机制、性能特点以及提供的API语言。此外,还介绍了Redis适用的具体场合,比如缓存、排行榜、实时分析等。 在快速入门部分,文档详细说明了...
- **memcached**: 一种流行的内存缓存系统,用于加速动态Web应用程序的性能,通过缓存数据库查询结果和其他开销大的API调用结果来减少读取时间。 - **Hypertable**: 一个基于Google Bigtable设计模式的分布式、可...
3.4.3 对memcached_functions_mysql的简单功能进行测试 3.4.4 使用memcached_functions_mysql的经验与技巧 3.5 本章小结 第2篇 数据备份恢复篇 第4章 开源网络备份软件bacula 4.1 bacula总体概述 4.1.1...
memcached是一个高性能的分布式的内存对象缓存系统,用于减轻数据库负载,通过缓存数据库查询结果和页面以及其他应用数据来减少读取数据库的次数。 ##### 1.1.6 Hypertable Hypertable是一个开源的、可扩展的、...
Memcached是一种高性能、分布式内存对象缓存系统,用于加速动态Web应用程序,减轻数据库负担。它是简单、快速、可靠的技术之一,广泛应用于各种Web环境中。 **1.1.4 Cassandra** Apache Cassandra是一个面向列的...
memcached是一个开源的高性能缓存系统,用于加速动态Web应用程序的速度。它通过将数据缓存在内存中来减少数据库负载,提高访问速度。 **1.1.6 Hypertable** Hypertable是一个基于Google Bigtable设计的开源分布式...
memcachedb是一款基于内存的高性能键值存储系统,它不仅提供了类似于memcached的高速缓存功能,还增加了持久化存储的能力,使得数据可以在内存与磁盘之间进行灵活切换,从而实现高速缓存的同时又能保存数据。...
- **简介**:memcached是一种简单的内存对象缓存系统,用于减轻数据库负载并提高网站速度。 - **特点**: - 主要用于缓存数据。 - 简单易用,支持多种编程语言。 - 不支持数据持久化。 ##### 1.1.6 Hypertable -...
- **memcachedb**: 结合了memcached的高性能和传统键值存储系统的持久化功能,提供了一个兼具速度与可靠性的解决方案。 - **Cassandra**: 一种分布式NoSQL数据库,支持横向扩展,主要用于处理大量结构化数据,具有高...
- memcached是一个高性能、分布式内存对象缓存系统,用于加速动态Web应用程序,减少数据库负载。 - **Hypertable** - Hypertable是一个基于Google Bigtable设计的分布式存储系统,它可以运行在商用硬件上,并支持...
#### 一、Redis简介与特点 **1.1 Key-Value存储系统简介** 在探讨Redis之前,我们先来了解下Key-Value存储系统的基本概念及其应用场景。 - **Voldemort:** 一个分布式键值存储系统,主要用于处理海量数据,并...
本文将从初识 Java 到成为一名熟练的 Java 开发者,整个过程中需要掌握的知识点和技能。 首先,需要掌握 Java 的基础知识,包括操作对象、if 和 for 语句、list、set 和 map 等数据结构。然后,需要学习线程、IO 和...