http://www.51testing.com/?uid-2243-action-viewspace-itemid-207655(转)
对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的 服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下Memcache和MySQL数据库交互过程的流程关系,了解Memcache的 中间缓存层作用,从而深入了解Memcache机制原理。
Memcache和MySQL 交互流程图
如上图,传统的查询方法是直接查询数据库,数据库将结果返 回给查询语句,而当有Memcache中间缓存层时,查询的是Memcache缓存数据,下面详细了解Memcache各类数据操作原理:
1,查询数据(select),首先通过指定的Key查询 (get)Memcache中间缓存层数据,如果存在相对应数据,则直接获取出数据结果,查询过程完全不需要查询数据库。如果不存在,则查询MySQL数 据库,并以key对应value的形式将查询结果存储在Memcache缓存数据中,然后将结果返回给查询语句。
2,更新 数据(update),首先更新数据,然后删除相关的memcache数据(delete)。
3,增加 数据(add),首先删除相关缓存数据,然后增加数据。
4,删除数据(delete), 删除数据,并删除Memcache数据。
对MySQL的数据操作,主要涉及到的Memcache方法如下:
1,获 取:get(key)
2,设置:set(key, value [, expiry])
3,删 除:delete(key [, time])
实例:
假设一个贴子,获取贴 子ID为2009的值,其Memcache与MySQL交互流程如下:
$key = 'biuuu_thread_';//key前缀
$cachetime = 100;//缓存有效时间(秒)
$id = 2009;
Memcache基本操作过程
1,查 询:$result = get($key.$id);如果$result为空,则查询MySQL数据库,然后 set($key.$id,$value,0,$cachetime)
2,更新:delete($key.$id);
3,增 加:delete($key.$id);
4,删除:delete($key.$id);
通过直观图和实例应该对Memcache与MySQL的交互有一个基础的掌握,其实对于应用来说,基本上 就已经足够,但如果要涉及到命名空间等相对复杂的情况,Memcache的操作方式会有所不同,但不管什么样的操作,还是离不开基础操作命令,由于这是 Memcache基础篇,主要是讨论Memcache和mysql交互操作流程,当Memcache原理清楚以 后,Memcache基本操作就是这么简单。
相关推荐
Memcache和MySQL交互流程图 如上图,传统的查询方法是直接查询数据库,数据库将结果返回给查询语句,而当有Memcache中间缓存层时,查询的是Memcache缓存数据,下面详细了解Memcache各类数据操作原理: 1. 查询数
通过两篇文章《Memcache 和 mysql 交互流程操作原理》和《让 memcached 和 mysql 更好的工作》,我们可以深入了解如何使用 Memcached 与 MySQL 配合工作。 为了监控和分析 Memcached 的运行状态,我们可以利用其...
【PHP+MYSQL+Memcache网站访问量统计插件】是一个集成PHP、MySQL和Memcache技术的网站统计解决方案,主要用于高效地记录和展示网站的访问量。这个插件通过使用Memcache作为缓存系统,有效解决了高并发环境下数据存储...
标题 "64位apache+mysql+php5.5.10+memcache" 提供了我们正在处理一个针对64位Windows操作系统的软件套装,它包括Apache web服务器、MySQL数据库服务器、PHP 5.5.10脚本语言解释器以及Memcached缓存系统。...
【标题】:“php apache mysql memcache redis mongodb”指的是在服务器端构建一套常见的Web开发环境,包括PHP编程语言、Apache HTTP服务器、MySQL数据库管理系统,以及两种内存缓存技术:Memcached和Redis,还有...
标题中的"win nginx php mysql memcache集成环境"指的是在Windows操作系统上搭建的一个包含Nginx、PHP、MySQL和Memcached的服务器环境。这样的集成环境通常用于高效地运行Web应用程序,尤其是那些基于PHP语言并需要...
在Go中,我们可以使用第三方库如`github.com/go-sql-driver/mysql`来连接和操作MySQL。要连接到MySQL,你需要创建一个包含数据库URL、用户名、密码和其他配置的DSN(数据源名称)。然后,你可以使用`sql.Open()`函数...
标题“memcache相关下载”指出我们关注的是一个与memcache相关的资源集合,特别是针对WAMP(Windows、Apache、MySQL、PHP)服务器环境的组件和DLL(动态链接库)文件。这表明内容可能涉及安装或升级memcache扩展,...
- 与MySQL的Memory引擎相比,Memcache更适合大规模的分布式缓存场景,而MySQL Memory更适合小规模的、需要事务支持的应用。 总的来说,"memcache jar"是Java开发者用于与Memcache服务器交互的关键组件,它简化了...
**标签解析:** "memcached_functions_mysql" 这个标签进一步强调了主题,说明这个压缩包包含了与Memcached和MySQL交互的相关函数或脚本。 **压缩包内容:** "memcached_functions_mysql-1.1" 可能是一个特定版本的...
Memcache采用简单的键值对存储方式,支持多语言接口,能够在多种操作系统上运行,并且能够无缝地配合多种数据库系统,如MySQL。 **二、PECL-Memcache扩展的安装与配置** 在Linux环境下安装`PECL-Memcache`扩展,...
标题中的“php5.3.5下可以使用的php_memcache.dll”指的是PHP的一个扩展模块,用于在PHP 5.3.5版本环境下与Memcache缓存系统进行交互。这个dll文件是Windows平台上的动态链接库文件,是PHP与Memcache进行通信的关键...
请注意,实际操作时可能需要根据你的具体环境进行调整,例如,如果你的Memcache服务器不在本地运行,你需要在`connect()`函数中提供正确的服务器地址和端口号。另外,确保Memcache服务本身已经正确安装和运行,否则...
2. **64位系统**:64位操作系统可以处理更大内存和更复杂的计算任务,对于大型Web应用程序和数据库服务尤其适用。 3. **PHP**:PHP是一种开源的服务器端脚本语言,主要用于Web开发,能够嵌入到HTML中。 4. **...
2. **客户端使用**:了解各个语言的客户端库如何连接和操作Memcached,如设置、获取和删除键值对。 3. **性能优化**:探讨如何调整Memcached的内存分配策略、超时设置和并发控制以达到最佳性能。 4. **分布式部署**...
在提供的文件"memcache学习总结(java版-winwods).docx"中,可能详细介绍了如何在Windows环境下使用Java来操作Memcached,包括安装步骤、配置以及基本的增删查改操作。 至于"Memcached_1.2.5.zip",这应该是...
本文将详细介绍如何在Windows 7环境下,特别是WAMP(Windows Apache MySQL PHP)服务器2.1e上安装和配置`php_memcache-cvs-20090703-5.3-VC6-x86`扩展,以便与PHP 5.3.x版本协同工作。 **Memcached是什么?** ...
`cache_Obj`和`get()`方法是与Memcache交互的,用来检查和获取缓存数据。如果没有找到缓存,`execute()`方法执行SQL查询,并将结果保存在`$result`中。 6. **数据处理**:查询结果通过`num_rows()`方法获取行数,...
8. 最后,在PHP代码中,你可以使用`new Memcache()`来实例化对象,通过`connect()`方法连接到本地的Memcached服务,并使用`set()`和`get()`等方法进行数据缓存操作。 通过以上步骤,你已经在PHPnow环境中成功安装和...