目前在数据层做缓存,大多是用memcached 或者redis 做数据缓存。
但是 最近发现,如果直接用文件做缓存,第一次读取比mem慢,但是第二次比mem 快好多。
百度了一下,原因是:
Cache Memory(缓存内存):
当读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。
然后看磁盘io,确实是第一次之后,获取数据基本上都是命中了内存的。而且数据量越大,mem越慢,文件读取速度几乎不受影响。
那么,在数据条数不多,(常用的在100条左右,文件大小在100k左右),是用mem呢,还是直接用文件缓存呢?
ps: 在本机上测试,获取一条数据 1w次,文件的速度比 mem 快 5倍多。
桃花长相依
Qyouu
UYOU