时间:2021-05-23
对于大型网站如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基本操作就是这么简单。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文整理汇总了C#缓存的数据库依赖类SqlCacheDependency的使用方法,具体内容如下:1、数据库依赖类SqlCacheDependency数据库缓存
背景缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大
数据库与缓存读写模式策略写完数据库后是否需要马上更新缓存还是直接删除缓存?(1)、如果写数据库的值与更新到缓存值是一样的,不需要经过任何的计算,可以马上更新缓存
1、普遍缓存技术: 数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,
1.Memcache相关介绍memcache是一个高性能的分布式的内存对象缓存系统,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。使