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

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

或者说,怎么更新缓存呢?
要怎么判断什么时候需要更新缓存,什么时候不需要更新呢?
靠什么来触发呢?原理是什么?
表达不好,不知道大家能不能看懂,,
@老虎会游泳 
回复列表(11|隐藏机器人聊天)
  • @Ta / 2013-01-26 / /
    好像是通过查询网址来到数据库查找页面缓存
  • @Ta / 2013-01-26 / /
    @soar
        一般不建议使用页面缓存,除非你的网站没有用户登录功能。
        通常我们做数据缓存,就是把第一次从数据库读出的结果写进缓存(比如Memcached或文件),下次就不用重新查询数据库了。
        当数据发生了更改时,提交更改到数据库的程序负责清除缓存。
  • @Ta / 2013-01-26 / /
    用户的操作正常后,执行缓存功能。如查询,修改,删除等吧
  • @Ta / 2013-01-26 / /
    缓存放在数据库??应该是放在服务器空间的吧??
    @淡然 
    我是这样想的:
    我觉得缓存内容应该是以文件的形式存在的,
    这样用户请求某页面时,如果页面内容没有更新的话,就直接输出缓存文件中的内容,这样可以减少太多太多不必要的消耗了,,否则就先更新缓存文件内容,再输出,,,
    可是这个条件要怎么实现呢???
    @老虎会游泳 
  • @Ta / 2013-01-26 / /
    回2楼:嗯 嗯 这样啊,可是要怎么判断数据是否更改了呢?
    @老虎会游泳
  • @Ta / 2013-01-26 / /
    我正在想呢
  • @Ta / 2013-01-26 / /
    楼主你去看DZ的数据库你就会明白了,DZ的上限在百万级数据
  • @Ta / 2013-01-26 / /
    @soar,真正的实现方法是逆过程:
        页面输出时:如果缓存存在,直接输出。不存在,生成缓存并输出。
        内容更改时:如果缓存存在,清除。
    * 通过这样的步骤,就避免了“不知道内容什么时候更新”的尴尬。
  • @Ta / 2013-01-26 / /
    8楼的方法保证了当内容发生更改时缓存肯定不存在,所以无需判断,有缓存直接用即可。
  • @Ta / 2013-01-26 / /
    嗯嗯,明白了,谢谢@老虎会游泳 还有大家
  • @Ta / 2013-01-27 / /
    8楼说的很对,只要确保数据更新时缓存被清除问题就解决了
添加新回复
回复需要登录