memcache和数据库的使用技巧
1、加速无数据的访问速度
毋庸置疑取数据先去取下memcache里的数据,如果没有再去数据库取数据
但这样如果我取100次都是没有的那么我得去数据库去取100次 如果还是重复的。。。那么效率就不高了
解决办法
//在数据库取数据
if (!$row)//如果没有数据
memcache_set($dbh->memcache, $cacheid, 'x', 0, 300);
else//有数据
memcache_set($dbh->memcache, $cacheid, $id, 0, 0);
不知道大家是否有看出这样处理的巧妙,为什么会往memcache里面设置一个’x'的值?还是300秒就过期了?
呵呵 原来是这样的:
如果没有数据,很平常的到数据库去取数据
如果数据存在于数据库,那么就给memcache里面设置数据,并且不过期,
如果数据不存在于数据库,那么就给memcache里面设置一个值为x的数据,但过期时间比较短,这样放置不久将来会也许数据库会存在这个数据,在不过期的时间里如果再访问这个数据,那么就直接取memcache的数据,就不需要到数据库去查询这个不存在的数据了,在海量数据和海量访问的时候,这样处理的效率很高呢
memcache和数据库的使用技巧的更多相关文章
- MySQL数据库调优技巧
原文链接:https://m.aliyun.com/bbs/read/300762.html MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它 ...
- 基于 自己定义注解 和 aop 实现使用memcache 对数据库的缓存 演示样例
好久没更新blog了,在新公司打拼了两个月,每天都从早忙到晚,学到了非常多东西,可是没有时间来更新blog了.... 以下開始解说这次的主题 公司老大让我研究 ocs 就是阿里云的 开放缓存服务 点击 ...
- PowerDesigner数据库设计实用技巧
欢迎大家补充,谢谢! 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的 ...
- 告诉你38个MySQL数据库的小技巧
无论是运维.开发.测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库.学MySQL,到底是要学习它的哪些东西呢? 1.如何快速掌握MySQL? 培养兴趣 兴趣是最好的老师,不论学习 ...
- Java-每日学习笔记(数据库与idea技巧)
Java杂记-2020.07.28 简单记录下今天项目用到的东西还有技术公众号学到的一些知识点 Java事务 idea编码技巧 数据库快速插入100万条数据 Java实现sql回滚 Java事务 事务 ...
- SQL Server数据库性能优化技巧
查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引: 2.I/O吞吐量小,形成了瓶颈效应: 3.内存不足: 4.网络速度慢: 5.查询出的数据量过大: 6.锁或者死锁: 7.返回了不必 ...
- 安装mysql数据库中的技巧、错误排查以及实用命令(持续更新)
针对解压版本5.7.16(博主使用的这个版本.在某些低版本中部分命令失效) 一.初始化data目录(解压版解压后没有data目录) mysqld --initialize-insecure --use ...
- 安装mysql数据库中的技巧、错误排查
针对解压版本5.7.16(博主使用的这个版本.在某些低版本中部分命令失效) 一.安装.初始化data目录(解压版解压后没有data目录) 安装:配置path环境变量,然后管理员运行命令提示符cmd ...
- 掌握MySQL数据库这些优化技巧,事半功倍!
一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇文章主要谈谈MySQL数据库在发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大 ...
随机推荐
- Delphi Keycode
Keycode表 字母和数字键的键码值(keyCode) 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66 K 75 T 84 2 50 C 67 L ...
- Python学习笔记六--文件和输入输出
6.1文件对象 所有Python对文件的操作都是基于对文件对象的操作.那么就从文件对象的创建说起.open()[file()]提供初始化输入输出的接口.open()成功打开文件时会返回一个文件对象. ...
- struts2.xml的配置与技巧
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...
- iOS开发——C篇&数组与指针
2015-07-17 13:23 编辑 前面我们介绍了关于C语言的内存分配问题,下面我们就开始介绍关于C语言的两个非常重要的知识点:数组与指针 数组与指针其实不仅仅是再C语言中,再OC中(当然OC是内 ...
- javaWeb遍历获取session中的值
//方法一:通过遍历的方法进行遍历 String FileName=""; HttpSession session=request.getSession();//获取session ...
- 【6】JAVA---地址App小软件(QueryPanel.class)(表现层)
查找模块: 年龄可进行段查找. 其他的都是模糊匹配. 空格为无用字符,会屏蔽的(除年龄). (如果在年龄中输入空格,会出现异常,当时没想到这点,要防护这点很容易的,但因为在这个小软件的编写过程,我主要 ...
- vim 插件
自动补全插件更换:youcompleteme github:https://github.com/Valloric/YouCompleteMe
- [Design Pattern] Front Controller Pattern 简单案例
Front Controller Pattern, 即前端控制器模式,用于集中化用户请求,使得所有请求都经过同一个前端控制器处理,处理内容有身份验证.权限验证.记录和追踪请求等,处理后再交由分发器把请 ...
- Jmeter mysql testing遇到的问题
问题:执行一条语句可以,多条语句则出错,查询jmter日志,告知sql语法错误. 解决办法: 后来发现需要allowmultiqueries参数置为true,而且,只有mysql connector/ ...
- Windows 已在 DImageProcess.exe 中触发一个断点。
其原因可能是堆被损坏,这说明 DImageProcess.exe 中或它所加载的任何 DLL 中有 Bug. 原因也可能是用户在 DImageProcess.exe 具有焦点时按下了 F12. 输出窗 ...