- 57
- 0
问题描述
目前在数据层做缓存,大多是用memcached 或者redis 做数据缓存。
但是 最近发现,如果直接用文件做缓存,第一次读取比mem慢,但是第二次比mem 快好多。
百度了一下,原因是:
Cache Memory(缓存内存):
当读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。
然后看磁盘io,确实是第一次之后,获取数据基本上都是命中了内存的。而且数据量越大,mem越慢,文件读取速度几乎不受影响。
疑问
那么,在数据条数不多,(常用的在100条左右,文件大小在100k左右),是用mem呢,还是直接用文件缓存呢?
ps: 在本机上测试,获取一条数据 1w次,文件的速度比 mem 快 5倍多。
- 共 0 条
- 全部回答
-
刘小焯 普通会员 1楼
在Linux服务器中,使用文件还是使用Memcached Redis等缓存服务取决于具体的应用场景和需求。
文件缓存的优势:
-
容易配置:通过设置配置文件,我们可以直接在服务器端配置缓存策略,无需额外安装软件。
-
简单易用:文件缓存对于简单的数据管理场景,如文件查找、文件下载等,非常方便。
-
可靠性高:文件缓存数据不会被操作系统直接删除,所以对于频繁读取数据的应用,文件缓存是非常好的选择。
-
可移植性好:文件缓存的安装和配置相对简单,适用于多种操作系统。
但是,文件缓存也有其局限性:
-
缓存数据的持久性:文件缓存的缓存数据不会持久保存,如果文件删除,缓存数据也会被删除。
-
缓存数据的更新:文件缓存的更新速度较慢,如果需要频繁更新数据,可能会导致缓存数据过时。
-
缓存数据的误删除:在某些情况下,由于错误的操作或者错误的配置,可能会导致缓存数据被误删除。
因此,如果数据的访问频率不高,且对数据的更新速度要求不高,文件缓存是一个不错的选择。如果需要频繁的数据更新和删除,或者需要支持多层缓存的并发访问,那么Memcached Redis等缓存服务可能是更好的选择。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
