php在pageCage、memCache、RedisCache和SSDBCache缓存的使用一般来讲对应哪些应用场景的?

AlphaGooo
  • 1.1k

问题主要是思考,在实际应用场景下,我的团队做法是会对一些浏览量比较少的页面做pageCache缓存处理,然而在一些几乎没人看的页面甚至不设缓存,但是针对一些浏览量较多的会设置memCache缓存,而对于核心业务页面还有一些浏览量很大的页面采用页面缓存pageCache+SSDBCache缓存处理。

使用缓存的目的很明显,就是为了降低服务器压力和数据库读取压力,但是缓存的使用也不能滥用,所以我很困惑这些缓存的使用:它们所对应的最适合的应用场景应该是什么?

问题详解:
1.以上四种缓存技术的最佳应用场景是什么?
2.你认为最佳的缓存策略是什么?
3.有哪些缓存机制你比较欣赏的?

注:我在团队开发的时候遇到缓存应用的混淆,乱用缓存或者不知道对应的场景应该采取哪些缓存策略才是最适合(没有最好的缓存策略,只有最适合的)。谢谢各路大牛,可以不局限在PHP,因为编程语言基本相通,都是派生同堂嘛,(*^__^*) 嘻嘻,可以针对某个问题解答,希望大牛全部解决,谢谢 。 。 。

回复
阅读 3.1k
1 个回答

pagecache是所谓是filecache吧?

题主的问题,简单的说1、太多,不好细说。2和3,只有合适,没有最好。好像有点废话

简单来说,现在用file形式cache的概率比较低了,除非是小应用,单机部署,就可以考虑,不然集群部署的时候,file的存储读取都是大问题,并且效率来说,file有IO开销,即使是SSD的物理机(已经很快了),也没内存快。

memcache是主流已久的方案了,如果是做session什么的,或者简单的KV的缓存,很好的选择,应付绝大多数场景都OK,在这几年面对大量NOSQL的压力,也衍生了部分产品,例如memcachedb之类的,都可以用一下,但memcache的本质是缓存,极力不建议做落地存储。

redis是nosql的热门之一了,亮点一堆一堆的,不少项目直接都用来取代mc,只做kv缓存的时候,性能跟mc很接近了。很多人都看中几点,一是可持久化,单纯的mc是做不到的,二是丰富的数据结构,mc的软肋是只能key-value,而redis做队列做广播,还有竞态处理什么的都很完善。所以如果你的业务很复杂,可以考虑redis。但是但是,依然不建议作为落地存储使用

SSDB是什么。。。没接触过,原谅我比较low。。。就不多废话了,总的来说,根据具体业务来考虑用什么缓存,什么方式缓存,先找出目前性能瓶颈再说吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏