有一个网站静态化缓存的想法,大家来讨论一下.

bear63 2014-09-16 09:08:17
我没有去学习过那些缓存什么的。自己总是感觉有点臃肿。

我希望就是用最简单的明白的一些语句,去实现自己想要的东西。

我还是个PHP初级的,所以大家讨论讨论便可。

我是想这样设计,在数据库中有一个表 web_page 字段简单
ID Web_Url Web_Key Web_UpDate

用户随便访问网站的某个页面,获取URL到数据库中判断,
如果不存在,侧把 页面及传递参数,生成一个KEY及时间写入数据库
同时生成一个以Web_Key 为名称的文件到 /temp/中

下次如果再访问该页面,判断时间是否大于设定的 30分钟,
如果小于,则直接调用 web_key 文件,如果大于,则再生成一次,更新时间。

这样子就可以实现整个站都缓存在 /temp/中,有效期是设定的30分钟或者更久,因为如果没有人访问,就不去更新了。

大伙说说这样的想法如何? 这就是我的入门级的想法。大家讨论一下,天马行空。。。哈哈。。
...全文
176 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
智商众筹 2014-09-16
  • 打赏
  • 举报
回复
下次如果再访问该页面,判断时间是否大于设定的 30分钟 这样的话,每个页面都需要经过ajax再次请求走php程序,这样失去了缓存的意义 一般网站的页面无非2种:列表页,内容页 列表页更新频率高,读取量并不大,可以不缓存,但向数据库查询的参数必须加好索引提速 内容页更新频率低,读取量大,可以考虑生成静态HTML页面 缓存的目的我个人认为有2个:缓存复杂计算结果,或是绕过php脚本直接读取静态文件
bear63 2014-09-16
  • 打赏
  • 举报
回复
引用 1 楼 orangeholic 的回复:
你介绍的实现也可以 介绍这边的一个实现方式:页面地址的url的md5值作为文件名字 前2位字符为文件名字 然后用file_exists判断
仔细想了一下,MD5确实是不二选择,再加上你说的文件名方式,比我原来想的方法要可靠很多。赞赞赞。。
bear63 2014-09-16
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
非常可惜,你的思路正是那感觉有点臃肿的缓存机制所使用的 只不过人家在实现时并不需要: 获取URL到数据库中判断,如果不存在,则把 页面及传递参数,生成一个KEY及时间写入数据库 而是从 url 中替换掉不能出现在文件名中的字符,得到缓存文件名 检查该文件是否存在,如果不存在或文件修改时间早于约定的时间,才重新产生缓存文件
是的,老大,我已经意识到了,谢谢,突然间思路又开拓了。。。
xuzuning 2014-09-16
  • 打赏
  • 举报
回复
非常可惜,你的思路正是那感觉有点臃肿的缓存机制所使用的 只不过人家在实现时并不需要: 获取URL到数据库中判断,如果不存在,则把 页面及传递参数,生成一个KEY及时间写入数据库 而是从 url 中替换掉不能出现在文件名中的字符,得到缓存文件名 检查该文件是否存在,如果不存在或文件修改时间早于约定的时间,才重新产生缓存文件
bear63 2014-09-16
  • 打赏
  • 举报
回复
引用 1 楼 orangeholic 的回复:
你介绍的实现也可以 介绍这边的一个实现方式:页面地址的url的md5值作为文件名字 前2位字符为文件名字 然后用file_exists判断
就是我在写完本文的时间,我就有这么一种想法,直接用URL做文件名, 但实在不明白为什么要用MD5呢?不明觉历。。是为了防止重复吗?每个URL都不一样,我觉得不可能重复啊。。
侑子的小伙伴 2014-09-16
  • 打赏
  • 举报
回复
你介绍的实现也可以

介绍这边的一个实现方式:页面地址的url的md5值作为文件名字 前2位字符为文件名字 然后用file_exists判断

智商众筹 2014-09-16
  • 打赏
  • 举报
回复
引用 7 楼 bear63 的回复:
为何还要 ajax,3楼已经有答案了。。不需要ajax的。
ajax只是一种实现方式,在当前请求判断文件也是一样,终归是要走一遍php脚本 这样的缓存没有意义,复杂缓存机制代替了原本的数据查询和模板渲染,没有节省太多时间,除非你直接跳过PHP
bear63 2014-09-16
  • 打赏
  • 举报
回复
引用 6 楼 wander_wind 的回复:
下次如果再访问该页面,判断时间是否大于设定的 30分钟 这样的话,每个页面都需要经过ajax再次请求走php程序,这样失去了缓存的意义 一般网站的页面无非2种:列表页,内容页 列表页更新频率高,读取量并不大,可以不缓存,但向数据库查询的参数必须加好索引提速 内容页更新频率低,读取量大,可以考虑生成静态HTML页面 缓存的目的我个人认为有2个:缓存复杂计算结果,或是绕过php脚本直接读取静态文件
为何还要 ajax,3楼已经有答案了。。不需要ajax的。

21,893

社区成员

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

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