当前位置: 首页 > news >正文

PHP自定义文件缓存实现

文件缓存:可以将PHP脚本的执行结果缓存到文件中。当一个PHP脚本被请求时,先查看是否存在缓存文件,如果存在且未过期,则直接读取缓存文件内容返回给客户端,而无需执行脚本

1、文件缓存写法一,每个文件缓存一个数据,缺点文件可能太多 

function getFileCache($key, $value = null, $expiry = 3600) {$cacheDir = "D:\\phpstudy_pro\\WWW\\cache\\";$cacheFile = $cacheDir . md5($key) . '.txt';if (file_exists($cacheFile) && (time() - filemtime($cacheFile) < $expiry)) {return file_get_contents($cacheFile);}if ($value !== null) {// 将$value参数的值保存到缓存文件中file_put_contents($cacheFile, $value);return $value;}// 保存数据到缓存文件中file_put_contents($cacheFile, $value);return $value;
}// 缓存具体的值
$cacheValue = 'example_value';getFileCache('example_key', $cacheValue);// 使用示例
$data = getFileCache('example_key');
echo $data;

 2、文件缓存写法二,一个文件缓存所有数据,缺点可能文件太大读写变慢

function getFileCache($key, $value = null, $expiry = 3600) {$cacheDir = "D:\\phpstudy_pro\\WWW\\cache\\";$cacheFile = $cacheDir .  'cache.txt';$file=false;if(file_exists($cacheFile)){$file= file_get_contents($cacheFile);}if($file){$data=unserialize($file);}else{$data=[];}if($value){$data[$key]=["data"=>$value,'expiry'=>time()+$expiry];file_put_contents($cacheFile, serialize($data));return true;}else{if(isset($data[$key])&&$data[$key]['expiry']>time()){return  $data[$key]['data'];}return null;}
}
// 缓存具体的值
$cacheValue = 'example_value';
getFileCache('example_key', $cacheValue);
$cacheValue = 'example_value2';
getFileCache('example_key2', $cacheValue);
// 使用示例
$data = getFileCache('example_key');
var_dump($data);
$data2 = getFileCache('example_key2');
var_dump($data2);

相关文章:

PHP自定义文件缓存实现

文件缓存&#xff1a;可以将PHP脚本的执行结果缓存到文件中。当一个PHP脚本被请求时&#xff0c;先查看是否存在缓存文件&#xff0c;如果存在且未过期&#xff0c;则直接读取缓存文件内容返回给客户端&#xff0c;而无需执行脚本 1、文件缓存写法一&#xff0c;每个文件缓存一…...

猫耳 Android 播放框架开发实践

概述 猫耳FM是中国最大的 95 后声音内容分享平台&#xff0c;是B站重要平台之一&#xff0c;深度合作国内顶级声优工作室&#xff0c;打造了数百部精品广播剧&#xff0c;全站播放总量超过百亿次。 MEPlayer 是猫耳 Android 技术团队研发的一款适用于音视频、直播、特效播放等…...

linux下df -h 命令一直卡住的解决方法

在Linux中&#xff0c;偶尔遇到用 df -h 查看磁盘情况时&#xff0c;一直卡住无法显示结果。 解决方法&#xff1a; 1、首先使用strace追踪到底执行到哪里卡住 $ strace df -h 2、如果没有strace命令则进行安装 $ yum install strace -y 3、显示出卡住的地方&#xff0c;如…...

系统架构设计热点知识

系统架构设计师考点包括以下内容&#xff1a; 1. 系统设计和架构思想. 了解系统设计和架构的基本概念和思想&#xff0c;特别是面向服务架构&#xff08;SOA&#xff09;、微服务架构、云架构、事件驱动架构、响应式架构等。 系统设计是指在软件项目中&#xff0c;确定系统结…...

2023-在mac下安装Homebrew的国内镜像

mac安装Homebrew的国内镜像 尝试使用其他下载源&#xff1a;GitHub 可能会受到访问限制&#xff0c;尝试使用其他镜像或下载源。您可以使用清华大学、中科大或阿里云的 Homebrew 镜像&#xff0c;以提高下载速度和可靠性。例如&#xff0c;可以使用阿里云的镜像来安装 Homebre…...

Ubuntu 20.04设置虚拟内存 (交换内存swap)解决内存不足

数据库服务器程序在运行起来之后&#xff0c;系统内存不足。 在系统监控中发现&#xff0c;当数据库服务程序启动后&#xff0c;占用了大量内存空间&#xff0c;导致系统的剩余的内存往往只有几十MB。 在ubuntu系统中&#xff0c;swap空间就是虚拟内存&#xff0c;所以考虑在磁…...

RabbitMQ-死信交换机和死信队列

1. 简介 1.1 DLX简介 DLX: Dead-Letter-Exchange 死信交换器&#xff0c;死信邮箱 当消息成为Dead message后&#xff0c;可以被重新发送到另一个交换机&#xff0c;这个交换机就是DLX。 如下图所示&#xff1a; 其实死信队列就是一个普通的交换机&#xff0c;有些队列的消息…...

[HNCTF 2022 WEEK2]easy_include 文件包含遇上nginx

这道纯粹记录 完全没想到 <?php //WEB手要懂得搜索if(isset($_GET[file])){$file $_GET[file];if(preg_match("/php|flag|data|\~|\!|\|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\_|\|\/i", $file)){die("error");}include($file); }else{highlight_file(__…...

python中transform和apply的区别是什么

文章目录 1. 介绍transform&#xff1a;apply&#xff1a; 2. 应用示例示例数据使用transform进行向量化操作使用apply进行更复杂的操作性能比较 3. 示例输出使用 transform 进行向量化操作使用 apply 进行更复杂的操作 4. transform再举例示例数据使用transform计算平均销售额…...

TCP 协议

文章目录 协议格式1面向连接:1.1三次握手&#xff08;建立连接&#xff09;1.2包序管理1.2四次挥手&#xff08;断开连接&#xff09; 2可靠传输:一。保证数据可靠有序的到达对端:确认应答机制超时重传机制 二。提高传输效率:1.提升自身发送数据量滑动窗口机制 rwnd滑动窗口丢包…...

Azure机器学习 - 在 Azure 机器学习中上传、访问和浏览数据

目录 一、环境准备二、设置内核三、下载使用的数据四、创建工作区的句柄五、将数据上传到云存储空间六、访问笔记本中的数据七、创建新版本的数据资产八、清理资源 机器学习项目的开始阶段通常涉及到探索性数据分析 (EDA)、数据预处理&#xff08;清理、特征工程&#xff09;以…...

新建包含cuda和cudnn的docker

背景&#xff1a;服务器的cudnn版本太低了&#xff0c;没有权限去修改。故新建包含cuda和cudnn的docker 步骤 一、拉取镜像及创建docker 拉取相关的镜像 从镜像列表选出相关版本的镜像https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/supported-tags.md …...

Opensips安装配置(以下操作均已centOS 6.3系统为准)

1. 安装依赖软件&#xff1a; a) Yum update //更新系统到最新 b) 安装以下所需依赖软件 gcc bison flex make openssl libmysqlclient-dev mysql-server c) 安装radiusclient&#xff1a; 1. wget http://pkgs.repoforge.org/radiuscli…...

第03章 用户与权限管理

第03章 用户与权限管理 1. 用户管理 1.1 登录MySQL服务器 启动MySQL服务后&#xff0c;可以通过mysql命令来登录MySQL服务器&#xff0c;命令如下&#xff1a; mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"-h参数后面接主机…...

赋能制造业高质量发展,释放采购数字化新活力——企企通亮相武汉2023国际智能制造创新论坛

摘要 “为应对成本上升、供应端不稳定、供应链上下游协同困难、决策无数据依据等问题&#xff0c;利用数字化手段降本增效、降低潜在风险十分关键。在AI等先进技术发展、供应链协同效应和降本诉求等机遇的驱动下&#xff0c;采购供应链数字化、协同化成为企业激烈竞争的优先选…...

洗地新天花板:CEYEE希亦顶配机皇T800 Pro洗地机多点发力上市开售

2023年11月1日&#xff0c;CEYEE希亦正式发布高端清洁产品无线洗地机希亦T800 PRO&#xff0c;创新性地实现了洗地场景深度清洁体验的新突破&#xff0c;彻底解决了清洁行业20多年来技术发展难题&#xff0c;颠覆式引领行业向水汽混动时代迈进&#xff0c;推动了整个市场向“智…...

如何创建一个react项目

文章目录 前言前言打开小黑窗口npm init vite后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;react.js &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&am…...

面试算法49:从根节点到叶节点的路径数字之和

题目 在一棵二叉树中所有节点都在0&#xff5e;9的范围之内&#xff0c;从根节点到叶节点的路径表示一个数字。求二叉树中所有路径表示的数字之和。例如&#xff0c;图8.4的二叉树有3条从根节点到叶节点的路径&#xff0c;它们分别表示数字395、391和302&#xff0c;这3个数字…...

http1,https,http2,http3总结

1.HTTP 当我们浏览网页时&#xff0c;地址栏中使用最多的多是https://开头的url&#xff0c;它与我们所学的http协议有什么区别&#xff1f; http协议又叫超文本传输协议&#xff0c;它是应用层中使用最多的协议&#xff0c; http与我们常说的socket有什么区别吗&#xff1f; …...

stable-diffusion-webui环境部署

stable-diffusion-webui环境部署 1. 环境创建2. 安装依赖库3.下载底模4. 获取lora参数文件5.运行代码6. 报错信息报错1报错2 1. 环境创建 创建虚拟环境 conda create -n env_stable python3.10.0进入虚拟环境 conda activate env_stableclone源码 git clone https://github.com…...

Git多Gitee账号独立管理方案(单电脑双项目场景)

Git多Gitee账号独立管理方案(单电脑双项目场景) 一、适用场景描述 版本控制:Gitee/GitHub/GitLab都可。 本文以Gitee为例。 在日常开发工作中,很多开发者会遇到同一台电脑,需要管理两个不同Gitee账号,分别对应两个独立项目的场景,具体场景如下: 个人开发项目与公司工…...

Asian Beauty Z-Image Turbo 学术研究:基于其生成能力的视觉认知心理学实验设计

Asian Beauty Z-Image Turbo 学术研究&#xff1a;基于其生成能力的视觉认知心理学实验设计 最近和几位做认知心理学的朋友聊天&#xff0c;他们提到一个挺头疼的问题&#xff1a;做面部表情识别或者情绪感知这类实验&#xff0c;找合适的视觉刺激材料太费劲了。要么是公开的数…...

Synopsys综合指令进阶指南:为什么90%的工程师都用错了full_case?

Synopsys综合指令进阶指南&#xff1a;为什么90%的工程师都用错了full_case&#xff1f; 在数字电路设计领域&#xff0c;Synopsys工具链中的full_case指令就像一把双刃剑——用得好可以优化电路结构&#xff0c;用不好则可能导致仿真与综合结果不一致的灾难性后果。本文将带您…...

光纤收发器指示灯故障排查指南:从状态解析到快速修复

1. 光纤收发器指示灯全解析&#xff1a;你的网络健康晴雨表 刚入行那会儿&#xff0c;我最怕遇到光纤网络故障。直到师傅教我&#xff1a;"看灯&#xff01;那些小灯泡比网管系统反应还快。"确实&#xff0c;光纤收发器面板上那些彩色指示灯&#xff0c;就像设备的&q…...

Qwen3智能字幕对齐系统开发环境搭建:基于IDEA的Java SDK调试指南

Qwen3智能字幕对齐系统开发环境搭建&#xff1a;基于IDEA的Java SDK调试指南 如果你是一名Java开发者&#xff0c;最近想尝试接入Qwen3智能字幕对齐系统的能力&#xff0c;比如为视频自动生成精准的字幕时间轴&#xff0c;那么这篇文章就是为你准备的。今天&#xff0c;我们不…...

Qwen3-ForcedAligner-0.6B效果展示:WAV/MP3混合输入下98.2%字级对齐准确率

Qwen3-ForcedAligner-0.6B效果展示&#xff1a;WAV/MP3混合输入下98.2%字级对齐准确率 1. 惊艳效果开场&#xff1a;语音识别的精准新标杆 想象一下这样的场景&#xff1a;一段包含中文、英文混合的会议录音&#xff0c;背景还有轻微的键盘敲击声。传统的语音识别工具可能只能…...

1张因果图,破解90%的决策误区:从相关性到因果性的终极分析框架

你是不是也遇到过这样的困惑&#xff1a;明明做了促销&#xff0c;销量涨了&#xff0c;却算不清到底是促销起了作用&#xff0c;还是商品本身就该爆&#xff1f;看到孩子上了补习班的同学成绩更好&#xff0c;就跟风报班&#xff0c;结果孩子成绩没涨&#xff0c;反而越来越厌…...

Ostrakon-VL-8B模型微调入门:使用自定义餐饮数据集

Ostrakon-VL-8B模型微调入门&#xff1a;使用自定义餐饮数据集 你是不是也遇到过这样的情况&#xff1f;看到一个很棒的视觉语言模型&#xff0c;它能识别各种通用物体&#xff0c;但当你拿一张特色地方菜或者自家餐厅的新品图片给它看时&#xff0c;它却常常“答非所问”&…...

MIT AI工具一分钟预览高度逼真3D打印成品外观,所见即所得

从电影道具到医疗设备&#xff0c;3D打印正在快速改变我们制造功能原型的方式。然而&#xff0c;大多数打印软件生成的预览只关注结构路径&#xff0c;忽略了颜色、光泽、纹理等外观要素&#xff0c;导致用户常常需要反复试印。根据3D科学谷的市场观察&#xff0c;MIT和普林斯顿…...

OpenClaw+千问3.5-9B学习助手:自动整理笔记与生成习题

OpenClaw千问3.5-9B学习助手&#xff1a;自动整理笔记与生成习题 1. 为什么需要AI学习助手&#xff1f; 去年备考PMP证书时&#xff0c;我每天要处理上百页PDF讲义。最痛苦的莫过于手动整理重点和制作复习卡片——复制粘贴到半夜&#xff0c;第二天发现漏了关键图表&#xff…...