php 常用的 redis、memcached 是高性能的分布式内存缓存,可以将数据缓存到系统内存中。但也使得系统依赖于其他服务,在虚拟主机中也不支持安装,这时候,使用文件缓存就是一个可行的选择。
文件缓存就是文件的存储实现缓存,将数据写入文件中,获取时读取文件内容。为了避免一个文件内的数据过大,读取文件时造成较高的延迟,存储结构一般采用一个key 对应一个文件的方式。写入的数据进行序列化处理,可以把过期时间写入到文件中支持key自动失效。使用 hash 算法一次计算出文件位置,能够快速的定位到文件路径。
一般使用 fifo 缓存更新策略,进入缓存的数据在缓存空间不足的情况下,会首先被清理。在一些数据库数据记录较大,服务器有限的场景时,使用文件缓存来缓解下数据库读取的压力。