鍍金池/ 問答/PHP/ Linux 服務(wù)器,數(shù)據(jù)緩存用文件好,還是用memcached redis 等

Linux 服務(wù)器,數(shù)據(jù)緩存用文件好,還是用memcached redis 等 好

問題描述

目前在數(shù)據(jù)層做緩存,大多是用memcached 或者redis 做數(shù)據(jù)緩存。
但是 最近發(fā)現(xiàn),如果直接用文件做緩存,第一次讀取比mem慢,但是第二次比mem 快好多。

百度了一下,原因是:

Cache Memory(緩存內(nèi)存):
當(dāng)讀寫文件的時候,Linux內(nèi)核為了提高讀寫性能與速度,會將文件在內(nèi)存中進(jìn)行緩存,這部分內(nèi)存就是Cache Memory(緩存內(nèi)存)。即使你的程序運行結(jié)束后,Cache Memory也不會自動釋放。這就會導(dǎo)致你在Linux系統(tǒng)中程序頻繁讀寫文件后,你會發(fā)現(xiàn)可用物理內(nèi)存會很少。

然后看磁盤io,確實是第一次之后,獲取數(shù)據(jù)基本上都是命中了內(nèi)存的。而且數(shù)據(jù)量越大,mem越慢,文件讀取速度幾乎不受影響。

疑問

那么,在數(shù)據(jù)條數(shù)不多,(常用的在100條左右,文件大小在100k左右),是用mem呢,還是直接用文件緩存呢?

ps: 在本機(jī)上測試,獲取一條數(shù)據(jù) 1w次,文件的速度比 mem 快 5倍多。

回答
編輯回答
柚稚

何不試下redis呢

2017年7月8日 22:20
編輯回答
扯機(jī)薄

建議使用nodb,文件緩存不利于做主從,我建議使用redis

2017年8月15日 19:40
編輯回答
不二心

文件做緩存需要考慮磁盤 I/O

2018年1月30日 20:48
編輯回答
舊顏

這個寫的挺好的,希望可以幫到你
https://www.cnblogs.com/45724...

2017年4月15日 01:38