底层的协议非常简单
memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议。
XML是比较老的一款通信格式,因此,通过telnet也能在memcached上保存数据、取得数据。下面是例子。
$ telnet localhost 11211
Trying 127.0.0.1
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
set foo 0 0 3 (保存命令)
bar (数据)
STORED (结果)
get foo (取得命令)
VALUE foo 0 3 (数据)
bar (数据)
事件处理的方式
libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
O(1)是数据库里的执行速度,有一个比较快的性能。
存储方式
为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。
通信分布式
memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。如取余,一致性哈希,都可以解决分布式的问题。
底层客户端并没有给我们做一些底层的算法问题,比如我想做一个memcached的分布式,他不会自动进行分布式。
文章来源:麦子学院
原文链接:http://www.maiziedu.com/wiki/memcache/feature/
相关推荐
- Spymemcached是另一个常用的Java Memcache客户端,它的特点是轻量级、易于集成,并具有良好的社区支持。 - 这个库基于Google的Protocol Buffers进行优化,提供高效的序列化和反序列化机制。 5. **集成到Java...
下面我们将深入探讨Memcache的基础知识、主要特点、安装步骤以及在Windows上的使用技巧。 **一、Memcache基础** 1. **工作原理**:Memcache基于键值对(key-value)存储,将数据存储在内存中,避免了传统数据库的...
3. **spymemcached**:这是另一个广泛使用的Java Memcache客户端,它的特点是轻量级、性能优秀。它同样支持基本的Key-Value操作,并且有良好的社区支持。 4. **安装与配置**:在Windows环境下,你需要首先下载并...
下面将详细阐述Memcache的主要特点、工作原理、安装与配置、使用方法以及其在实际应用中的优势。 1. **Memcache的特点:** - **高性能**:Memcache是为速度而设计的,它可以快速地存储和检索数据,因为它直接在...
Memcache 的主要特点是高速缓存,能够减轻数据库的压力,提高网站的访问速度。Memcache 的工作流程是,先检查客户端的请求数据是否在 memcached 中,如有,直接把请求数据返回,否则就去查数据库,把从数据库中获取...
它的主要特点是高性能、轻量级以及简单易用。本篇文章将深入探讨memcache1.2.8版本的源码,了解其实现原理及关键功能。 1. **内存管理** Memcache的核心是内存管理,它采用slab分配器来高效地管理内存。Slab分配器...
Memcached的特征包括: 1. 协议简单:它有一个非常简单的基于文本行的协议,容易编程实现。 2. 基于libevent的事件处理:Memcached使用libevent库来处理网络事件,使得其在高并发环境下有良好的性能表现。 3. ...
它以其简洁、高效和灵活的特点深受开发者喜爱。而Memcache则是一款高性能的分布式内存对象缓存系统,常用于减轻数据库负载,提升网站性能。当PHP与Memcache结合,可以实现快速存储和检索数据,优化动态内容的生成...
**memCache源码分析——Java客户端** memCache是一款高性能、分布式的内存对象缓存系统,常用于减轻数据库的负载,提升应用性能。它的主要特点是基于内存存储,操作速度快,无持久化机制,适用于缓存非关键数据。在...
MemCache和Redis各有优势,选择哪种取决于具体的应用需求。若追求极致的性能且数据可接受丢失,可以选择MemCache;若需要更丰富的数据结构、持久化和主从复制等高级功能,Redis则是更好的选择。在实际项目中,两者也...
Memcache在各种场景下都有广泛的应用,特别是在高流量网站中,它可以显著减轻后端数据库的压力。例如,在社交网络、电子商务平台和新闻网站等领域,通过缓存热点数据、用户会话信息等可以大大提高用户体验。 **实践...
这些工具各有特点,可以根据实际需求和使用环境选择合适的工具。 **5. 结论** Memcached图形管理工具如memadmin,极大地简化了对Memcached服务的管理和监控,提高了运维效率。通过可视化的方式,用户可以直观地了解...
3. **自动过期**: 每个存储的数据项都有一个生存时间(TTL),过期后自动删除。 4. **协议简单**: 使用自定义的文本协议,易于实现和调试。 在Windows环境下,安装Memcached服务器端`memcached.exe`的步骤如下: 1...
在构建高性能、高可用性的Web应用系统时,整合Nginx、Tomcat和Memcache是常见的一种技术架构。这个程序包“tomcat7+nginx+memcached”旨在实现通过Nginx进行负载均衡,以及利用Memcache来共享Tomcat服务器之间的...
它的主要特点包括: - **高性能**:由于数据存储在内存中,访问速度极快。 - **分布式**:可以在多台服务器上部署,实现数据分发,提高服务可用性。 - **无结构化**:不支持复杂的数据结构,只存储简单的键值对。 ...
3. 并发200线程set操作:在有数据的缓存中,测量每种缓存的吞吐量(TPS)。 4. 并发200线程get操作:同样测量TPS,但每个线程读取不同大小的数据。 【测试环境配置】 - Memcached运行在10.19.90.74上,版本1.4.15...
Memcache的特点包括高速、轻量级、无持久化存储,适合处理大量的小数据项。 **PHP与Memcache结合:** 在PHP中,通过扩展库可以与Memcache进行交互。PHP的Memcache扩展允许开发者将数据存储到Memcache服务器,或者从...
这个助手类主要特点,Memcache连接复用,一个http请求只使用一个Memcache连接,使用Key前缀,使多个项目共享Memcache实例,这个助手类可用于任意框架(codeigniter可放于helper文件夹下).
- Memcache和Mongodb各有特点,适用于不同的应用场景。Memcache更适合用于缓存频繁访问的小数据量,而Mongodb则更适合用于处理大量非结构化的数据。 - 在选择使用Memcache还是Mongodb时,需要根据具体的业务需求和...
这些系统各有特点,可以根据具体需求选择适用的技术。例如,Redis支持更丰富的数据结构,适合复杂的数据存储和处理场景。 总的来说,Memcache作为一个高效的内存缓存系统,为Web应用提供了快速的数据访问途径,减少...