Memcache实践: Memcache和mysql交互流程操作思路

memcache实践: Memcache和mysql交互流程操作思路

Memcache是什么

Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。

它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。

Memcache官方网站:http://www.danga.com/memcached,更多详细的信息可以来这里了解 :)

为什么会有Memcache和memcached两种名称?

其实Memcache是这个项目的名称,而memcached是它服务器端的主程序文件名,知道我的意思了把~~~~。一个是项目名称,一个是主程序文件名,在网上看到了很多人不明白,于是混用了。

Memcache应用实践

对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的 服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下Memcache和MySQL数据库交互过程的流程关系,了解Memcache的 中间缓存层作用,从而深入了解Memcache机制原理。

1.jpg - 大小: 15.2 KB - 尺寸: 450 x 350 - 点击打开新窗口浏览全图

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);

2.jpg - 大小: 12.62 KB - 尺寸: 288 x 437 - 点击打开新窗口浏览全图

通过直观图和实例应该对Memcache与MySQL的交互有一个基础的掌握,其实对于应用来说,基本上 就已经足够,但如果要涉及到命名空间等相对复杂的情况,Memcache的操作方式会有所不同,但不管什么样的操作,还是离不开基础操作命令,由于这是 Memcache基础篇,主要是讨论Memcache和mysql交互操作流程,当Memcache原理清楚以 后,Memcache基本操作就是这么简单。

关键词: memcache , mysql

上一篇: SEO优化2个要点之建立符合百度抓取习惯的网站
下一篇: PHP检测网站的URL地址是否被百度新闻收录(curl模式)

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):