本文連接:https://blog.csdn.net/u011852589/article/details/11713073
若是不考慮其餘任何問題,只比較速度的話,那確定是mem快,但他們各有優缺點。
文件緩存優勢:
一、因爲如今的硬盤都很是大,全部若是是大數據的時候,放硬盤裏就比較合適,好比作一個cms網站,網站裏有10萬篇文章,生成的文件大小總數可能就會很大。
二、數據的存放較爲安全,因爲是硬盤存放,因此在乎外掉電的狀況下,緩存文件不會丟失。
三、易於擴展,若是硬盤不夠用,能夠更換大硬盤或者添加硬盤,在容量上受的限制很小。
文件緩存缺點:
一、高併發時,硬盤的讀寫性能大幅度下降。
二、網站pv持續很高的狀況下,硬盤壽命大大下降。redis
memcached優勢:
一、讀寫性能優異,特別是高併發時和文件緩存比有明顯優點。
二、memcached組建支持集羣,而且是自動管理負載均衡。
memcached缺點:
一、緩存空間有限:聽說一臺電腦的mem緩存開到2g以上會出現不穩定,數據無端丟失的現象。
二、掉電丟失數據:因爲是把數據放在內存裏的,全部一旦機器掉電,數據也就所有丟失了。sql
通常建議:若是是作內容緩存的話,好比把一些不常常更改的文章放在文件緩存裏比較合適,而mem則適合放一些頻繁更改的數據,好比能夠把session數據放進mem。數據庫
文件緩存耗IO、過時時間自行控制、不費帶寬、不易採用分佈式。
cache緩存耗內存、過時時間由cache控制、稍佔帶寬、易採用分佈式。緩存
在實際項目應用中,能夠聯合使用memcache和文件類型緩存。根據熱度來把最熱的數據放在內存裏面。而後把通常的數據放在文件緩存中。安全
讀取數據時,能夠按照 memcache=>file_cache=>databases
這樣的遞歸來處理。最大程度的利用緩存來減輕數據庫的查詢壓力。服務器
另外session不能放在內存裏面。能夠用redis存儲session.定時把內存數據刷新到硬盤。這樣萬一斷電或者其餘故障,不至於全部session都失效。session
memcache 的使用場景是:當你有大量的數據 >2G 大小,而這些數據是 有可能被很頻繁的讀寫時,memcache可使用集羣,不但跨進程,並且跨機器。併發
文件緩存,如今較少使用了。由於磁盤io的隨機定位是10ms 左右,並且磁盤io太頻繁的話,會拖慢整個服務器的處理性能。也沒辦法支持高併發。負載均衡
如今的大部分的時候都是將計算和io區分開,能夠保證各自的性能。計算能夠放到數據庫去作,好比查詢 ,連表啊 啥的。
io就nosql吧 這樣支持高併發好點。
————————————————
版權聲明:本文爲CSDN博主「武燕銘」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/xiaowuc/article/details/11713073nosql