文件緩存與memcached的區別


如果不考慮其他任何問題,只比較速度的話,那肯定是mem快,但他們各有優缺點。
文件緩存優點:
1、由於現在的硬盤都非常大,所有如果是大數據的時候,放硬盤里就比較合適,比如做一個cms網站,網站里有10萬篇文章,生成的文件大小總數可能就會很大。
2、數據的存放較為安全,由於是硬盤存放,所以在意外掉電的情況下,緩存文件不會丟失。
3、易於擴展,如果硬盤不夠用,可以更換大硬盤或者添加硬盤,在容量上受的限制很小。
文件緩存缺點:
1、高並發時,硬盤的讀寫性能大幅度降低。
2、網站pv持續很高的情況下,硬盤壽命大大降低。

memcached優點:
1、讀寫性能優異,特別是高並發時和文件緩存比有明顯優勢。
2、memcached組建支持集群,並且是自動管理負載均衡。
memcached缺點:
1、緩存空間有限:據說一台電腦的mem緩存開到2g以上會出現不穩定,數據無故丟失的現象。
2、掉電丟失數據:由於是把數據放在內存里的,所有一旦機器掉電,數據也就全部丟失了。

一般建議:如果是做內容緩存的話,比如把一些不經常更改的文章放在文件緩存里比較合適,而mem則適合放一些頻繁更改的數據,比如可以把session數據放進mem。

 

文件緩存耗IO、過期時間自行控制、不費帶寬、不易采用分布式。
cache緩存耗內存、過期時間由cache控制、稍占帶寬、易采用分布式。

 

在實際項目應用中,可以聯合使用memcache和文件類型緩存。根據熱度來把最熱的數據放在內存里面。然后把一般的數據放在文件緩存中。

讀取數據時,可以按照 memcache=>file_cache=>databases
這樣的遞歸來處理。最大程度的利用緩存來減輕數據庫的查詢壓力。

另外session不能放在內存里面。可以用redis存儲session.定時把內存數據刷新到硬盤。這樣萬一斷電或者其他故障,不至於所有session都失效。

 

 

memcache 的使用場景是:當你有大量的數據 >2G 大小,而這些數據是 有可能被很頻繁的讀寫時,memcache可以使用集群,不但跨進程,而且跨機器。

文件緩存,現在較少使用了。因為磁盤io的隨機定位是10ms 左右,而且磁盤io太頻繁的話,會拖慢整個服務器的處理性能。也沒辦法支持高並發。

現在的大部分的時候都是將計算和io區分開,可以保證各自的性能。計算可以放到數據庫去做,比如查詢 ,連表啊 啥的。
io就nosql吧 這樣支持高並發好點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM