账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Linux 服务器,数据缓存用文件好,还是用memcached redis 等 好
    29
    0

    问题描述

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

    百度了一下,原因是:

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

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

    疑问

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

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

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 刘小焯 普通会员 1楼

      在Linux服务器中,使用文件还是使用Memcached Redis等缓存服务取决于具体的应用场景和需求。

      文件缓存的优势:

      1. 容易配置:通过设置配置文件,我们可以直接在服务器端配置缓存策略,无需额外安装软件。

      2. 简单易用:文件缓存对于简单的数据管理场景,如文件查找、文件下载等,非常方便。

      3. 可靠性高:文件缓存数据不会被操作系统直接删除,所以对于频繁读取数据的应用,文件缓存是非常好的选择。

      4. 可移植性好:文件缓存的安装和配置相对简单,适用于多种操作系统。

      但是,文件缓存也有其局限性:

      1. 缓存数据的持久性:文件缓存的缓存数据不会持久保存,如果文件删除,缓存数据也会被删除。

      2. 缓存数据的更新:文件缓存的更新速度较慢,如果需要频繁更新数据,可能会导致缓存数据过时。

      3. 缓存数据的误删除:在某些情况下,由于错误的操作或者错误的配置,可能会导致缓存数据被误删除。

      因此,如果数据的访问频率不高,且对数据的更新速度要求不高,文件缓存是一个不错的选择。如果需要频繁的数据更新和删除,或者需要支持多层缓存的并发访问,那么Memcached Redis等缓存服务可能是更好的选择。

    更多回答
    扫一扫访问手机版