PHP项目缓存怎么搭建?

用PHP写一个自己的产品,以后开发网站都要用到这个项目,经验不足,在缓存方面纠结了好一阵。我想用smarty从底层开始做。由于smarty有自己的缓存机制,所以我会利用它... 用PHP写一个自己的产品,以后开发网站都要用到这个项目,经验不足,在缓存方面纠结了好一阵。
我想用smarty从底层开始做。由于smarty有自己的缓存机制,所以我会利用它的缓存功能,但这种方式的缓存只是缓存的编译文件,如果这个缓存文件不存在并且没有其他方式的缓存,则会重新读取很多很多次数据库,所以我要考虑其他缓存方式,例如文件缓存数据库方式。
我是这么想的,后台有个功能叫做生成缓存,把项目需要的表全部一次性缓存起来(读取出数组,然后生成文件并写入文件),读取数据的时候判断缓存的文件是否存在,如果存在则读取缓存文件,否则再读取数据库,当修改对应的配置时会重新生成缓存文件。但是我搞不懂,我做的前台功能也需要读取缓存,假如我在生成缓存的那一瞬间,前台用户读取缓存的话,应该会出现错误吧?这个问题怎么解决,或者有没有更好的解决方案?
我初步是想按这种方案做的,并且结合smarty的模板缓存来构建项目的缓存机制。请问这样做合理吗?有没有更好的方法?请大神帮我解答上面的很多疑问。谢谢啦
展开
 我来答
HUC越前
2013-12-27 · TA获得超过263个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:185万
展开全部
你可以用redis或者memcache来做db缓存,他们的原理就是像你说的如果存在则从缓存中取,如果不存在则读取数据库并设置缓存。memcache和redis的区别是memcache只支持用内存做缓存,redis支持内存或者文件作为缓存,这要根据你的内存大小做选择。
另外在你请出缓存的时候,前端程序里其实应该或有是否缓存存在的判断,如果刚好用户访问的时候缓存被清除,则应该会读取数据库,不会出现错误。

请采纳。
暗香斋
2013-12-27 · TA获得超过230个赞
知道小有建树答主
回答量:212
采纳率:100%
帮助的人:97.6万
展开全部
研究一下memcache,或者一些NoSQL的数据库,都有很好的加速功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式