Memcache学习系列(二):Memcache和mysql交互流程操作原理说明

对于大型网站如facebookebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下MemcacheMySQL数据库交互过程的流程关系,了解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])

实例:
假设一个贴子,获取贴子ID2009的值,其MemcacheMySQL交互流程如下:

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

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

Memcache::add - Add an item to the server
Memcache::addServer - Add a memcached server to connection pool
Memcache::close - Close memcached server connection
Memcache::connect - Open memcached server connection
memcache_debug - Turn debug output on/off
Memcache::decrement - Decrement item's value
Memcache::delete - Delete item from the server
Memcache::flush - Flush all existing items at the server
Memcache::get - Retrieve item from the server
Memcache::getExtendedStats - Get statistics from all servers in pool
Memcache::getStats - Get statistics of the server
Memcache::getVersion - Return version of the server
Memcache::increment - Increment item's value
Memcache::pconnect - Open memcached server persistent connection
Memcache::replace - Replace value of the existing item
Memcache::set - Store data at the server
Memcache::setCompressThreshold - Enable automatic compression of large values

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值