有些时候,我们不希望使用redis等第三方缓存,使得卺肿蓦艚系统依赖于其他服务。这时候,文件缓存会是一个不错的选择。下面教给大家一种PHP的文件缓存方法。
工具/原料
phpstorm(推荐)
需求分析:
1、我们酋篚靶高需要文件缓存实现哪些功能:功能实现:get、set、has、increment、decrement、delete、flush。能够在较短的时间内返回数据。
2、支持key过期:1. 为了避免一个文件内的数据过大,造成读取文件的时候延迟较高,我们采用一个key-value一个文件的方式实现存储结构。2. 为了支持key过期,我们需要把expire数据写入到文件中,所以需要对写入的数据进行序列化处理。3. 为了能够快速的定位到文件路径,我们采用hash算法一次计算出文件位置。
代码实现:
1、新建一个FileCache文件缓存亿姣灵秀类,定义一个cache_dir变量,这个变量就是我们缓存目录。我们先来操作缓存目录。
2、根据key获取值,会判断是否过期。
3、添加或覆盖一个key。
4、设置包含元数据的信息。
5、创建缓存文件。
6、判断Key是否存在。
7、加法递增。
8、减法递增。
9、删除一个key,同时会删除缓存文件。
10、清除所有缓存。
11、递归删除目录。
12、根据key获取缓存文件路径。
13、获取含有元数据的信息。
14、检查key是否过期。