猿问

Linux 服务器,数据缓存用文件好,还是用memcached redis 等 好

问题描述

目前在数据层做缓存,大多是用memcached 或者redis 做数据缓存。
但是 最近发现,如果直接用文件做缓存,第一次读取比mem慢,但是第二次比mem 快好多。

百度了一下,原因是:

Cache Memory(缓存内存):
当读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。

然后看磁盘io,确实是第一次之后,获取数据基本上都是命中了内存的。而且数据量越大,mem越慢,文件读取速度几乎不受影响。

疑问

那么,在数据条数不多,(常用的在100条左右,文件大小在100k左右),是用mem呢,还是直接用文件缓存呢?

ps: 在本机上测试,获取一条数据 1w次,文件的速度比 mem 快 5倍多。

慕姐8265434
浏览 620回答 4
4回答

桃花长相依

何不试下redis呢

Qyouu

文件做缓存需要考虑磁盘 I/O

UYOU

建议使用nodb,文件缓存不利于做主从,我建议使用redis
随时随地看视频慕课网APP
我要回答