登录
立即注册
首页
>
绿虎论坛
>
历史版块
>
编程
>
PHP
>
源码
大家可不可以讲下php缓存数据库的原理
月初
@Ta
2013-01-26
4129点击
使用缓存可以 减少不必要的系统资源消耗和处理时间, 大幅度加快程序响应速度,
但按照我的理解,缓存页面应该是以静态页面的形势存在的,
问题就来了,这样一来虽然可以提高响应速度,但怎么能尽快获取最新消息呢(就拿论坛动态页面来说吧,,)?
或者说,怎么更新缓存呢?
要怎么判断什么时候需要更新缓存,什么时候不需要更新呢?
靠什么来触发呢?原理是什么?
表达不好,不知道大家能不能看懂,,
@
老虎会游泳
隐藏样式
查看源码
回复列表(11|
隐藏机器人聊天
)
1
淡然
@Ta
/ 2013-01-26 /
样
/
源
好像是通过查询网址来到数据库查找页面缓存
2
老虎会游泳
@Ta
/ 2013-01-26 /
样
/
源
@
soar
一般不建议使用页面缓存,除非你的网站没有用户登录功能。
通常我们做数据缓存,就是把第一次从数据库读出的结果写进缓存(比如Memcached或文件),下次就不用重新查询数据库了。
当数据发生了更改时,提交更改到数据库的程序负责清除缓存。
3
真为智商捉急
@Ta
/ 2013-01-26 /
样
/
源
用户的操作正常后,执行缓存功能。如查询,修改,删除等吧
4
月初
@Ta
/ 2013-01-26 /
样
/
源
缓存放在数据库??应该是放在服务器空间的吧??
@
淡然
我是这样想的:
我觉得缓存内容应该是以文件的形式存在的,
这样用户请求某页面时,如果页面内容没有更新的话,就直接输出缓存文件中的内容,这样可以减少太多太多不必要的消耗了,,否则就先更新缓存文件内容,再输出,,,
可是这个条件要怎么实现呢???
@
老虎会游泳
5
月初
@Ta
/ 2013-01-26 /
样
/
源
回2楼:嗯 嗯 这样啊,可是要怎么判断数据是否更改了呢?
@
老虎会游泳
6
PGF_高峰
@Ta
/ 2013-01-26 /
样
/
源
我正在想呢
7
淡然
@Ta
/ 2013-01-26 /
样
/
源
楼主你去看DZ的数据库你就会明白了,DZ的上限在百万级数据
8
老虎会游泳
@Ta
/ 2013-01-26 /
样
/
源
@
soar
,真正的实现方法是逆过程:
页面输出时:如果缓存存在,直接输出。不存在,生成缓存并输出。
内容更改时:如果缓存存在,清除。
* 通过这样的步骤,就避免了“不知道内容什么时候更新”的尴尬。
9
老虎会游泳
@Ta
/ 2013-01-26 /
样
/
源
8楼的方法保证了当内容发生更改时缓存肯定不存在,所以无需判断,有缓存直接用即可。
10
月初
@Ta
/ 2013-01-26 /
样
/
源
嗯嗯,明白了,谢谢
@
老虎会游泳
还有大家
11
Bewind
@Ta
/ 2013-01-27 /
样
/
源
8楼说的很对,只要确保数据更新时缓存被清除问题就解决了
添加新回复
回复需要
登录
。
一般不建议使用页面缓存,除非你的网站没有用户登录功能。
通常我们做数据缓存,就是把第一次从数据库读出的结果写进缓存(比如Memcached或文件),下次就不用重新查询数据库了。
当数据发生了更改时,提交更改到数据库的程序负责清除缓存。
@淡然
我是这样想的:
我觉得缓存内容应该是以文件的形式存在的,
这样用户请求某页面时,如果页面内容没有更新的话,就直接输出缓存文件中的内容,这样可以减少太多太多不必要的消耗了,,否则就先更新缓存文件内容,再输出,,,
可是这个条件要怎么实现呢???
@老虎会游泳
@老虎会游泳
页面输出时:如果缓存存在,直接输出。不存在,生成缓存并输出。
内容更改时:如果缓存存在,清除。
* 通过这样的步骤,就避免了“不知道内容什么时候更新”的尴尬。