设为首页收藏本站
开启辅助访问
切换到宽版

创星网络[分享知识 传递快乐]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索
查看: 4747|回复: 0
打印 上一主题 下一主题

Memcache和mysql交互流程操作原理

[复制链接]

我玩的应用:

跳转到指定楼层
楼主
发表于 2012-12-15 22:15:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于大型网站如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基本操作就是这么简单。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|创星网络 ( 苏ICP备11027519号|网站地图  

GMT+8, 2024-9-22 06:42 , Processed in 0.098164 second(s), 28 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表