Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统, 用于在动态系统中减少数据库负载,提升性能。关于这个东西,相信很多人都用过,本文意在通过对memcached的实现及代码分析,获得对这个出色的开源 软件更深入的了解,并可以根据我们的需要对其进行更进一步的优化。末了将通过对BSM_Memcache扩展的分析,加深对memcached的使用方式 理解。
Memcached是什么,不是什么?
在 阐述这个问题之前,我们首先要清楚它"不是什么"。很多人把它当作和SharedMemory那种形式的存储载体来使用,虽然memcached使用了同 样的"Key=>Value"方式组织数据,但是它和共享内存、APC等本地缓存有非常大的区别。Memcached是分布式的,也就是说它不是本 地的。它基于网络连接(当然它也可以使用localhost)方式完成服务,本身它是一个独立于应用的程序或守护进程(Daemon方式)。
Memcached 使用libevent库实现网络连接服务,理论上可以处理无限多的连接,但是它和Apache不同,它更多的时候是面向稳定的持续连接的,所以它实际的并 发能力是有限制的。在保守情况下memcached的最大同时连接数为200,这和Linux线程能力有关系,这个数值是可以调整的。关于 libevent可以参考相关文档。 Memcached内存使用方式也和APC不同。APC是基于共享内存和MMAP的,memcachd有自己的内存分配算法和管理方式,它和共享内存没有 关系,也没有共享内存的限制,通常情况下,每个memcached进程可以管理2GB的内存空间,如果需要更多的空间,可以增加进程数。
分享到:
相关推荐
#### 1.2 Memcached不是什么? Memcached并非一个数据库或持久化存储解决方案,而是一个缓存层,其设计初衷是为了缓解数据库的读取压力。它不提供事务支持、数据完整性检查或持久化存储功能,而是侧重于快速数据...
#### 三、Memcached不是什么? 理解Memcached的功能边界对于正确使用它至关重要。Memcached不是持久化存储解决方案,这意味着存储在Memcached中的数据是暂时性的,一旦服务器重启或关闭,所有数据都将丢失。因此,...
-M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助 Memcache环境测试: 运行下面的php文件,如果有...
- 配置文件通常不是必须的,但可以通过`-C`选项指定配置文件,自定义设置如超时时间、 slab 分区等。 - 可以使用`telnet`或`mc-client`工具与`memcached`交互,进行数据的增删查改。 5. **slab分配机制** - `...
它通过将数据和对象存储在服务器的内存中,而不是每次请求时都查询数据库,从而显著提高了读取速度。这里我们将深入探讨解压后的"memcached工具类源码"及其相关知识点。 1. **Memcached基础概念** - **内存存储**...
MemCached For Win32 服务器 -p 监听的端口 ...-M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助
而Hibernate则是一个Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发人员能够更专注于业务逻辑而不是数据库操作。 在“memcached整合hibernate资源合集”中,我们可以找到如何将这两者结合使用以...
这种设计使得Memcached适合于处理大量的小数据项,而不是大数据块。 二、Memcached实例 Memcached实例是指在服务器上部署并运行的Memcached服务。创建和管理Memcached实例通常包括以下几个步骤: 1. 安装:在Linux...
- **数据序列化/反序列化**:如果需要存储的对象不是字符串,客户端可能需要进行序列化和反序列化操作。 - **错误处理**:处理与服务端通信时可能出现的网络错误、超时等问题。 ### 3. Memcached管理工具 为了方便...
4. **编程接口**:在应用代码中,可能需要适当地处理Session操作,确保Session创建、读取、更新和删除(CRUD)操作通过memcached客户端进行,而不是直接调用默认的Tomcat Session API。 5. **测试和优化**:在部署...
安装服务方法(也可直接双击启动): ...-M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助
MSM(Memcached_Session_Manager)是一个基于Java的Memcached会话管理器,它允许我们将Web应用的session数据存储在Memcached服务器上,而不是传统的保存在服务器的内存中或者硬盘上的session文件。这样,即使服务器...
默认64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助 Memcache环境测试: 运行下面的php文件,如果...
实现"memcached+tomcat的session共享"的基本思路是:将Tomcat的session数据存储到memcached服务器上,而不是默认的本地内存或硬盘。这样,无论用户请求被路由到集群中的哪台Tomcat服务器,都可以从memcached中获取到...
memcached是一套分布式的快取系统,是一套开放源...-M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助
它通过将数据存储在内存中来加速读取操作,而不是频繁地从硬盘上读取,从而显著提升了应用程序的性能。`memcached`最初是为Linux环境设计的,但随着其流行度的增长,也有了针对Windows平台的版本。 **1. memcached ...
- `-M` 当内存耗尽时返回错误,而不是删除条目。 - `-c` 最大并发连接数,默认为1024。 - `-f` 块大小增长因子,默认为1.25。 - `-n` 最小分配空间,包括key、value和flags,默认为48字节。 - `-h` 显示帮助信息。 ...
- **memcache** - 这是另一种PHP扩展,虽然不是这个压缩包的主题,但提及表明了与memcached扩展的区别。 **压缩包子文件的文件名称列表解析:** - `package.xml` - 这通常是构建系统或者包管理器使用的配置文件,...