php与memcache结合做部分重页面做缓存处理
来源:互联网 发布:国际阿里云网址 编辑:程序博客网 时间:2024/06/09 18:09
需求和现状
我们的平台(php网站)由于业务日益负载,导致部分页面承载着很重的数据库查询压力,例如首页涉及很多的联表查询,业务详情页涉及一些鉴权和多表查询,我称之为“重页面”,为了提高查询速度,我决定使用业务缓存方法来处理一层。
解决方法
平台的后端返回的都是json串,所以将json串作为value,前缀加页面标识(例如服务id等)作为key,存储json串。第一次请求时候做set动作,有效期为1小时,这一小时内均get该值。
部分代码:
$mclient = Sap_Common_MClient::getInstance();$rs = $mclient->get($key);// 有缓存的话先从缓存中取if ($rs !== false){ // echo "111111"; $serviceDetail = $rs; //清理昨天的缓存 $yesterdayDate = date('Y-m-d',time()-Sap_Common_Constants::TIME_DAY_DURATION); $key_yesterday = 'serviceDetail_'.$yesterdayDate; $rs_yesterday = $mclient->delete($key);} else { // echo "222222"; $serviceDetail = $dataServiceOper->queryServiceDetailById($serviceId, $uid); $rsMemcached = $serviceDetail; $expireTime = 3600; $mclient->set($key,$rsMemcached,$expireTime);}
注意点
- 变更频率很高并且实时性要求较强的数据(例如发出一条评论),别这么缓存,例如访问量、评论等等,最好能单拉接口让前端获取,或者单独请求,与缓存json做拼接。
- 变更频率不高的数据(可能要求实时性),需要在变更动作作出时候,清理缓存,例如一些详情内容变更、首页产品位排序变更等等,可以通过清楚缓存,使得变更立即生效。
0 0
- php与memcache结合做部分重页面做缓存处理
- Ehcache做页面缓存
- Memcache学习笔记二:Memcache做Mybatis的缓存
- OSCache做页面级缓存
- 73.iOS UIWebView重定向问题处理 RNCachingURLProtocol做缓存出现的重定向问题
- 浅谈公司核心业务数据表的重构——结合Memcache分析缓存策略与系统数据交互
- 浅谈公司核心业务数据的重构——结合Memcache分析缓存策略与系统数据交互
- 浅谈公司核心业务数据表的重构——结合Memcache分析缓存策略与系统数据交互
- 使用apache的mod_disk_cache做缓存,不能缓存开启了session的php页面
- 如何用redis/memcache做Mysql缓存层?
- 如何用redis/memcache做Mysql缓存层?
- Xcache与memcache这两个php缓存
- JS如何做页面重定向
- PHP 做图片锐化处理
- java 与 php 做rsa 加密数据通讯问题处理
- tinyxml与boost结合做界面
- iOS--手机号部分做星号处理
- Java中用Ehcache做缓存处理
- 百万级访问网站前期的技术准备
- pdflush进程详解
- androidstudio Butterknife-7.0.1的配置使用
- 微软算法100道题
- 小鑫查卫生
- php与memcache结合做部分重页面做缓存处理
- OpenJudge_P8206 二分法求函数的零点
- thinkphp3.2模块分组的建立详细步骤
- poj 2155 Matrix---树状数组套树状数组
- 小鑫吃糖果
- <LeetCode><Medium> 5 Longest Palindromic Substring #爆发式搜索
- sessionStorage、localStorage如何存储数组与对象
- gdb调试nginx示例
- Android之文本框自动获取发送到手机的短信验证码