> 백엔드 개발 > PHP 튜토리얼 > 求教smarty清空缓存判断的设计技巧

求教smarty清空缓存判断的设计技巧

WBOY
풀어 주다: 2016-06-23 14:21:54
원래의
1013명이 탐색했습니다.

今天才开始学习smarty……
有个清空缓存的判断没有搞清楚,请指点一下:

首页或者目录的缓存很好理解,查询的数据又多,没有缓存的话每次都要查数据库
但是到具体的文章内容的话,不是就没有那个必要了吗?
情况1:如果文章被修改了,那么肯定要清空缓存,如何知道文章被修改了呢?查数据库修改的时间……修改时间和文章内容是绑定在一起放在一个表的啊……这和直接查询有啥区别?
情况2:文章被点击后有一个点击数的记录,这个点击数是放置在文章的数据表中的……为了获取点击数,还是要查询这个文章的数据表(点击数和正文也是放在一个表的啊)……这有啥区别?另外将点击数做一个表连接到文章表……这数据库也设计得太扯了吧?


回复讨论(解决方案)

情况1:可以用is_cached()方法判断
情况2:获取点击数查文章表这不奇怪啊。。。

情况1:可以用is_cached()方法判断
情况2:获取点击数查文章表这不奇怪啊。。。
情况1:看了api,知道可以用is_cached通过模板和查询参数来判断,一般情况下就是直接缓存了。因为我懒,所以我的服务器也懒,估计这个缓存持续时间10年也说不定 。但是有些时候会有人来编辑这个文章,如果我要知道文章是否被编辑,也简单,在编辑后修改最后编辑时间就行了。但是这样一来因为每次浏览的时候不知道文章是否被编辑,所以还是要去查询数据库,感觉没有起到缓存的作用啊……
情况2:貌似我已经有个想法了……

其实这个东西是否自己写循环10000次的sql语句查询不同的id就可以判断出来了?
也就是说如果select * from tablea where `id` = $id消耗远比select `modifydt` from tablea where `id`=$id要大得多,那么实际上通常情况下大部分时候只是使用消耗小的数据进行查询。
不过懒得测试了……求直接告诉答案吧……

对于 情况1 :
这是你臆造的需求,如果你缓存文章,那么就相当于自己再维护一个文件型数据库
如果确有需求,那也是生成静态页面,而不是缓存数据
当发生文章修改时,重新生成静态页就可以了

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿