关于memcache的使用(入门级问题),memcache已经配置好,如何才能通过使用它来加快访问速度?

再看我一眼 2013-06-25 11:57:12
如题

网上看了很多资料 大都是关于memcache配置安装 还有函数列表的

现在已经配置好 用echo $memcache->getVersion();也可以打印出版本了


该如何进行进一步的操作 来使响应速度增加

比如我现在我已经知道一条很复杂的sql语句执行时间很久

如何针对这条sql语句进行操作?


如果描述不够清楚请说一下我尽量描述...

谢谢~~
...全文
801 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
宁波大学生网 2015-02-12
  • 打赏
  • 举报
回复
配置好了感觉效果不明显
billoldtwo 2013-06-27
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
memcache 不可以缓解数据库的压力 如果那打算将查询结果放在 memcache 中供下次使用,那么下次你得到的不就总是旧的数据吗? 如果还要去检查库中数据是否更新的话,那要缓存做什么? 那么 memcache 适合由于什么样的场景呢? 当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能
当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能 这句话没有看懂
billoldtwo 2013-06-27
  • 打赏
  • 举报
回复
引用 3 楼 anyilaoliu 的回复:
当然,尽可能的优化是要先考虑做的 然后现在要做缓存希望能更快一些 那么 是要在每一个查询处来set or(and) get吗? 那岂不是非常的繁琐.
当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能这句话没有看懂
gfsdrgsdf 2013-06-27
  • 打赏
  • 举报
回复
你这表述,memcache不是用来优化sql语句的, 它是用来临时存储访问数据库后得到的数据,第一次获得数据后存储起来,下次访问的时候就不需要查询数据库,而是直接从内存中拿,从而达到减轻数据库访问压力. 而memcache相当于是面向对象的访问接口(内存缓存的过程式程序) code中类似这样的逻辑 if($mem->get('key')){ // 判断是否已经存储 // 已存储 从内存中获取 }else{ $mem->set('key','value') // 还没有存入缓存 存入 } 只是简单的调用这个,还是很简单的,自己试一下吧..
SeeleSpirit 2013-06-27
  • 打赏
  • 举报
回复
说白了Memcache是一种内存缓存技术,是一种缓存手段,要看情况来使用。 对于频繁读取,每次读取重复率高,数据更新频度低的数据,用Memcache可以优化你的系统响应速度。 一般来说,Memcache的使用分为几个步骤: 1、在代码中,实例化Memcache对象 $mem = new Memcache; $mem->addserver('127.0.0.1',11211); 2、在获取数据后,将数据缓存到Memcache,下面例子中$data就是需要缓存的数据,$key可以认为是Memcache缓存数据的唯一性标识 $mem->add($key,$data,MEMCACHE_COMPRESSED,60); 3、在需要数据时,从Memcache里面根据$key取数据 $val = $mem->get($key);
夏之冰雪 2013-06-25
  • 打赏
  • 举报
回复
引用 楼主 anyilaoliu 的回复:
如题 网上看了很多资料 大都是关于memcache配置安装 还有函数列表的 现在已经配置好 用echo $memcache->getVersion();也可以打印出版本了 该如何进行进一步的操作 来使响应速度增加 比如我现在我已经知道一条很复杂的sql语句执行时间很久 如何针对这条sql语句进行操作? 如果描述不够清楚请说一下我尽量描述... 谢谢~~
memcache可以分担mysql的压力。 比如你有select的读语句要执行,每次读数据库前先从memcache缓存读,若是读不到再从mysql读,并将内容写到缓存,以便下次从缓存读。 memcache说白了可以降低数据库服务的读压力,而且是缓存,读快且压力小。 而“比如我现在我已经知道一条很复杂的sql语句执行时间很久”,要是想让它快你只能优化sql语句。 若是这句是个读操作,那么你可以写缓存,以后读的话就非常快了。 另外,缓存要注意一点,数据库update和delete的时候,缓存也要更新。~~~
黄袍披身 2013-06-25
  • 打赏
  • 举报
回复
估计你是把应用场景想错了... sql的问题首先是优化语句 当然你可以考虑将表放到临时内存表里处理
u011171415 2013-06-25
  • 打赏
  • 举报
回复
引用 2 楼 hellodifa 的回复:
[quote=引用 楼主 anyilaoliu 的回复:] 如题 网上看了很多资料 大都是关于memcache配置安装 还有函数列表的 现在已经配置好 用echo $memcache->getVersion();也可以打印出版本了 该如何进行进一步的操作 来使响应速度增加 比如我现在我已经知道一条很复杂的sql语句执行时间很久 如何针对这条sql语句进行操作? 如果描述不够清楚请说一下我尽量描述... 谢谢~~
memcache可以分担mysql的压力。 比如你有select的读语句要执行,每次读数据库前先从memcache缓存读,若是读不到再从mysql读,并将内容写到缓存,以便下次从缓存读。 memcache说白了可以降低数据库服务的读压力,而且是缓存,读快且压力小。 而“比如我现在我已经知道一条很复杂的sql语句执行时间很久”,要是想让它快你只能优化sql语句。 若是这句是个读操作,那么你可以写缓存,以后读的话就非常快了。 另外,缓存要注意一点,数据库update和delete的时候,缓存也要更新。~~~[/quote] 大姐是做PHP吗?
皓月长空 2013-06-25
  • 打赏
  • 举报
回复
缓存主要应用于某个时间段不会更新而且经常连接数据库的页面或者程序,比如天气预报,商城的每日促销页面等等,这些访问量会比较大,而且不长更新使用缓存时限,比如每天的8时更新或者分几个时间段,看自己的需求了
再看我一眼 2013-06-25
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
memcache 不可以缓解数据库的压力 如果那打算将查询结果放在 memcache 中供下次使用,那么下次你得到的不就总是旧的数据吗? 如果还要去检查库中数据是否更新的话,那要缓存做什么? 那么 memcache 适合由于什么样的场景呢? 当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能
能否举个稍微具体的例子来说明下memcache的应用呢? =========== 我现在要查询一个用户关注的各类信息.要分别去查各种条件的汇总起来然后去信息总表内查询. 这种情况下适合使用memcache吗(缓存各种条件的汇总结果,设置个过期时间)?
xuzuning 2013-06-25
  • 打赏
  • 举报
回复
memcache 不可以缓解数据库的压力 如果那打算将查询结果放在 memcache 中供下次使用,那么下次你得到的不就总是旧的数据吗? 如果还要去检查库中数据是否更新的话,那要缓存做什么? 那么 memcache 适合由于什么样的场景呢? 当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能
再看我一眼 2013-06-25
  • 打赏
  • 举报
回复
当然,尽可能的优化是要先考虑做的 然后现在要做缓存希望能更快一些 那么 是要在每一个查询处来set or(and) get吗? 那岂不是非常的繁琐.
关于MyQEE MyQEE是一个开源、快速、优雅的轻量级PHP框架,支持HMVC模式,建立在PHP5.2基础之上,支持多项目管理开发,数据库内置自动主从分离功能,MySQL支持事务操作功能并且支持自动嵌套功能,多驱动设计灵活适应各种环境。点击访问 [MyQEE入门指引](./manual/guide/zh-cn/starting.md)。   拒绝粗糙不堪、复杂的代码,选择MyQEE,选择为WEB艺术家创造的PHP框架吧。   MyQEE PHP框架的特色 * MyQEE是一套轻量级的框架,但不是简陋的框架,系统具备完善的底层类库和强大的扩展功能设计; * 特有的 [HMVC](./manual/guide/zh-cn/hmvc.md) (分层MVC设计)和多项目支持,开发更灵活; * 支持时下最流行的PHP包管理器 [Composer](http://getcomposer.org/) ,并且可以使用 Composer 安装 MyQEE 提供的官方类库; * 代码一致性设计:例如 `MySQL` 和 `MongoDB` 的查询语句完全不同,但是在 MyQEE 里可以做到实现90%的一致性,你的代码既可以使用在 `MySQL` 的环境里也可以用在 `MongoDB` 上; * 包括`Database`, `Cache`, `HttpClient`, `Session`, `Storage`, `Upload` 等支持多驱动,可以适应不同环境的需求,其中数据库支持 `MySQL`, `MySQLI`, `Mongo`, `SQLite`, `Postgre`,缓存支持 `Memcache`, `File`, `Redis`, `Apc`, `Database`, `SQLite`, `WinCache` 等; * 数据库提供强大的 `QueryBuilder` 功能,可实现同相同程序兼容多种数据库,解决SQL注入隐患和迁移环境后顾之忧; * 云引擎支持:支持SAE和BAE等云引擎,MyQEE网站就运行在SAE上; * 高性能和优雅的代码:经测试 MyQEE 的初始化速度比 Codeigniter 等优秀的轻量级框架还快; * 完备和详细的文档和API支持,更可简单的生成自己的团队文档; * 为团队开发而生,特别提供团队类库功能,多项目设置可以帮助团队成员之间规划独立和共用的代码; * ORM支持,提供了特有的高性能ORM; * 支持 `RESTFul`,支持 [PHPRPC](http://www.phprpc.org/); * 独创5模式运行设计:普通控制器、后台、命令行、系统调用、RESTFul的控制器相互分离,系统更加安全可靠;   安全性 * 系统内置XSS安全过滤; * 防SQL注入,强大的QueryBuilder; * 强制数据类型转换; * 普通控制器、后台、命令行、系统调用、RESTFul 5种运行模式相互隔离,安全更有保障;   MyQEE v3.0 RC2 更新日志: 本次更新在3.0RC1的基础上做了一些完善,修复了一些Bug: 完善文档生成脚本 完善模块化的拆分 数据库增加对 group_concat 的支持,MongoDB数据库驱动支持在group查询中使用distinct查询,修复MongoDB驱动力中查询slave在新的版本里可能导致连接失败的问题 增加 BigInt 类库 日期类库完善 HttpClient 增加upload方法,可实现上传文件功能 完善邮件类库,修复 Email 中上传附件bug,支持收件人姓名 邮件的格式,完善密件抄送的功能 Session 类库优化 Swift Storage 驱动完善,token验证支持v1和v2版本,优化参数传送方式,支持url方式的配置

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧