已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 源码

标题: 大家可不可以讲下php缓存数据库的原理

作者: @Ta

时间: 2013-01-26

点击: 4125

使用缓存可以 减少不必要的系统资源消耗和处理时间, 大幅度加快程序响应速度,
但按照我的理解,缓存页面应该是以静态页面的形势存在的,
问题就来了,这样一来虽然可以提高响应速度,但怎么能尽快获取最新消息呢(就拿论坛动态页面来说吧,,)?

或者说,怎么更新缓存呢?
要怎么判断什么时候需要更新缓存,什么时候不需要更新呢?
靠什么来触发呢?原理是什么?
表达不好,不知道大家能不能看懂,,
@老虎会游泳 

[隐藏样式|查看源码]


『回复列表(11|隐藏机器人聊天)』

1. 好像是通过查询网址来到数据库查找页面缓存
(/@Ta/2013-01-26 21:11//)

2. @soar
    一般不建议使用页面缓存,除非你的网站没有用户登录功能。
    通常我们做数据缓存,就是把第一次从数据库读出的结果写进缓存(比如Memcached或文件),下次就不用重新查询数据库了。
    当数据发生了更改时,提交更改到数据库的程序负责清除缓存。
(/@Ta/2013-01-26 21:16//)

3. 用户的操作正常后,执行缓存功能。如查询,修改,删除等吧
(/@Ta/2013-01-26 21:22//)

4. 缓存放在数据库??应该是放在服务器空间的吧??
@淡然 
我是这样想的:
我觉得缓存内容应该是以文件的形式存在的,
这样用户请求某页面时,如果页面内容没有更新的话,就直接输出缓存文件中的内容,这样可以减少太多太多不必要的消耗了,,否则就先更新缓存文件内容,再输出,,,
可是这个条件要怎么实现呢???
@老虎会游泳 
(/@Ta/2013-01-26 21:24//)

5. 回2楼:嗯 嗯 这样啊,可是要怎么判断数据是否更改了呢?
@老虎会游泳
(/@Ta/2013-01-26 21:27//)

6. 我正在想呢
(/@Ta/2013-01-26 21:28//)

7. 楼主你去看DZ的数据库你就会明白了,DZ的上限在百万级数据
(/@Ta/2013-01-26 21:30//)

8. @soar,真正的实现方法是逆过程:
    页面输出时:如果缓存存在,直接输出。不存在,生成缓存并输出。
    内容更改时:如果缓存存在,清除。
* 通过这样的步骤,就避免了“不知道内容什么时候更新”的尴尬。
(/@Ta/2013-01-26 21:30//)

9. 8楼的方法保证了当内容发生更改时缓存肯定不存在,所以无需判断,有缓存直接用即可。
(/@Ta/2013-01-26 21:32//)

10. 嗯嗯,明白了,谢谢@老虎会游泳 还有大家
(/@Ta/2013-01-26 21:44//)

11. 8楼说的很对,只要确保数据更新时缓存被清除问题就解决了
(/@Ta/2013-01-27 11:34//)

回复需要登录

10月1日 04:25 星期三

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1