nilcms file类 简单文件缓存实现
来源:互联网 发布:qq宠物 知乎 编辑:程序博客网 时间:2024/05/21 17:28
实现简单的文件缓存,参照CI的部分设计,在这里记录一下子。
class File{ const CACHE_PATH = 'nil_file_cache'; /*其他函数省略了*/ /** * 获取缓存文件. * * @param string $key 缓存名. * * @return string|false */ private static function getCacheFile($key) { return (empty($key)) ? false : NIL_DATA_PATH.DIRECTORY_SEPARATOR.self::CACHE_PATH.DIRECTORY_SEPARATOR.$key.'.bin'; } /** * 删除缓存文件. * 存在就删除 * * @param string $key 缓存名. * * @return null */ public static function cacheDelete($key) { /*缓存文件*/ $file = self::getCacheFile($key); if( is_file($file) ) { @unlink($file); } } /** * 获取缓存. * * @param string $key 缓存名. * * @return mixed|false 结果 */ public static function cacheGet($key) { /*缓存文件*/ $file = self::getCacheFile($key); if( ! is_file($file) ) { return false; } /*读取*/ $data = @file_get_contents($file); if($data === false) { return false; } /*序列化*/ $data = @unserialize($data); /*定义基本的值 未过期*/ if( ! isset($data['ttl'],$data['time'],$data['data']) || ($data['ttl'] > 0 && time() > $data['time'] + $data['ttl']) ) { @unlink($file); return false; } /*返回*/ return $data['data']; } /** * 生成缓存. * * @param string $key 缓存名. * @param mixed $data 数据. * * @return bool 是否成功 */ public static function cacheSave($key, $data, $time = 0) { /*路径*/ $path = self::getCacheFile($key); if(false === $path) { return false; } /*组合数据*/ $d = [ 'time' => time(), 'ttl' => $time, 'data' => $data ]; /*写入数据*/ if(self::write($path, serialize($d))) { @chmod($path, 0640); return true; } return false; }}
结束
调度
阅读全文
0 0
- nilcms file类 简单文件缓存实现
- Android内部File文件缓存
- php实现文件缓存类
- Memcache缓存 vs 直接File文件缓存
- File文件简单操作工具类
- Java File类简单应用:文件遍历
- zhphp framewrok (二十二) file cache 文件缓存类
- 一个PHP简单文件缓存类
- 简单高效的 PHP 文件缓存类
- 简单的java缓存类实现
- 简单缓存实现
- 简单缓存的实现
- 缓存池-简单实现
- 简单实现本地缓存
- map实现简单缓存
- File类中的方法实现文件排序
- Ubuntu File Cache(文件缓存大小)
- 操作缓存文件,熟悉File操作
- TextView使用小技巧——一个TextView多重属性设置(SpannableStringBuilder)
- H5 直播避坑指南
- 第十三周LeetCode
- 服务器端通过websocket发送消息给,当多客户端登录分发时;一个客户端网络不好,所有的客户端都会阻塞?为何
- table添加圆角效果
- nilcms file类 简单文件缓存实现
- 唯快不破:linux下的epoll如何高效处理百万连接
- LeetCode--Word Break(分词)Python
- HttpClient超时设置详解
- Hibernate实现有两种配置,xml配置与注释配置
- oracle Extended Statistics 维护
- MySql常用sql语句
- 简单爬虫(1):亚马逊的陶瓷杯
- Okhttp网络请求