起因:MC导航网的加载速度实在是慢,后端占用内存还大,于是就打算加上个缓存,不用每次加载都读取数据库了。
本来是想装个Redis来实现缓存的,但是呢,我懒。。于是就改成文件缓存了。
直接上代码
<?php
define('CACHE_DIR', '缓存目录') // 定义缓存目录
/**
* 获取缓存
* @param string $name 缓存名称
* @return string 缓存内容
*/
function cache_get($name){
if (file_exists(CACHE_DIR . $name . '.php')) {
$cache = require(CACHE_DIR . $name . '.php');
$expire = isset($cache['Expire']) ? $cache['Expire'] : 3600;
if (time() - $cache['Time'] < $expire) {
if ($cache['Cache'] == '') {
return false;
} else {
return $cache['Cache'];
}
} else {
return false;
}
} else {
return false;
}
}
/**
* 保存缓存
* @param string $name 缓存名称
* @param string $cache 缓存内容
* @param integer $expire 过期时间 默认3600 单位s
*/
function cache_set($name, $cache, $expire=3600)
{
file_put_contents(CACHE_DIR . $name . '.php', '<?php return array(\'Time\'=>\'' . time() . '\', \'Expire\'=>\' ' . $expire . '\', \'Cache\'=>\'' . $cache . '\');');
}
$cache = cache_get('cache');
if (!$cache) {
// 在这里执行你的代码获取内容并缓存
$content = '简单缓存使用 https://blog.i-coder.top/?p=86';
cache_set('cache', $content, 60 * 60 * 24); // 设置缓存过期时间一天
} else {
$content = $cache;
}
echo $content;
本代码仅适用于跟我一样懒的人。
果然加上缓存后导航网访问快了不少。
本文内容及代码转载自耗子的博客!
评论
共10
条评论
bug_report 开发
NenmorphismCSS - 新拟态UI框架
新拟态由来19年末一位来自乌克兰的设计师AlexanderPlyuto在追波和ins上发布了下图的一张作品然后火了,浏览超30W+,获得众多设计师的喜爱,并被追波收录到2020设计趋势预测里面。有设计师称这种设计叫Neumorphism(新拟态)或者Soft UI(软UI),于是新拟态就慢慢传开了。目前做了卡片按钮圆角分割线阴影表单项目https://github.com/ERHECY/Ne...
[1.16.x]ChatMnagement-智能聊天管理【制作中】
这是一个调用 阿里云,百度云,网易 的API来实现违规聊天管理 目前只完成了 百度云的调用(由于边学边做所以有点慢)
[1.15.2][PaperSpigot]纯净生存基础服务端『Bukkit』
信息核心版本上手难度PaperSpigot1.15.2简单插件文件大小开服证明说明本服务端适合新手上手 部分基础权限已给,玩家上服即可开玩本服务端的eula协议 需要手动同意,请开服前同意eula协议!{y}添加OneDrive下载,可能速度比百度网盘快点,如果下载过慢可以加群347778300下载{/y}
Typecho主题BlueBOX_V2.3开发完成
BlueBOX蓝色非常纯净,通常让人联想到海洋、天空、水、宇宙。蓝色表现出一种美丽、冷静、理智、内在、智慧、安详与广阔。蓝色还表示秀丽清新、宁静、明亮,干净,透明、豁达、温柔,梦幻……就是你现在看到的主题,目前正在逐渐添加功能!功能介绍自适应响应式设计适配各种大小尺寸屏幕自定义导航栏样式可在设置里设置导航栏显示样式Bilibili视频1080p播放支持使用av、BV号插入bilibili视频...
label 标签
ACG
Akarin
api
AutoRestart
bukkit
Bukkit插件
BungeeCord
c
ChatMnagement
Craft Bukkit
css
C语言
ess
EYE
FastAsyncWorldEdit
fill
Hose
hypixel
id
JAVA
MEENET
Minecraft
Minecraft Server
MOD服务器
Nenmorphism
NotBuild
Nukkit
NukkitX
PaperSpigot
PayDay
pe
PHP
PlaceholderAPI
PocketMine-MP
QuarryCraft
server.properties文件
SpecialTools
Spigot
Sponge
sponge插件
Steam
Typecho
UI框架
ViaVersion
WorldBorder
WorldEdit
worldguard
专题
主题
代码
传送
作业
作品
信息
修复
修正
其他
冬木
创世神
创世神异步
前置
命令方块
图片
圆形
基础插件
填充
壁纸
娱乐
娱乐服务端
学习
安全
官方服务端
小游戏
小游戏服务端
属性
开发
开服教程
开源
必读
我的世界
我的世界开服教程
我的世界怎么开服
我的世界指令
我的世界指令大全
我的世界指令教程
我的世界插件
我的世界服务器
我的世界服务端
我的世界物品id
我的世界物品英文
指令
指令大全
挖矿
收藏
教程
整地
新拟态
日常
日记
最新服务端
服务器
木头
机制
机械
权限
汉化
版本
物品
生存
生成
生物
疫情
白嫖
空岛
笔记
管理
红石
红石灯
纯净服务端
经济
综合
编程
网页
美图
聊天
自动重启
致敬
艾慕之宫
蓝奏云
规划
角色
解决办法
软件相关
边界
链接
附魔
随机图片
面向对象
项目
刚想试试,下面就来一句:慎用本代码,出现任何问题与我无关。
毕竟不想别人出了问题还要来怪我。
请慎用本代码,出现任何问题与我无关
如果存在编码问题,可以将cache_get函数里return $cache['Cache'];替换为return base64_decode($cache['Cache']);然后把cache_set里file_put_contents前一行加上$cache=base64_encode($cache);
你这样搞不担心跨? 而且安全性还不如Redis
鹅鹅鹅鹅,跨了就跨了。而且此代码仅供参考哈哈哈哈哈
好敷衍呀,我本地试了一下 直接把数据库写爆存
敷衍又怎么了,都说了代码仅供参考。你数据库写爆存关缓存什么事。你要说是我缓存低效的缘故呢缓存又是文件存储的,跟数据库扯不上太大关系,最多就是缓存的时候调用一下;你要说是没有成功缓存的话,那就是每次访问页面都会调用数据库,也就是没有缓存情况下,那也不太可能。而且你也不说怎么试的,也没说具体问题出在哪,谁知道是不是缓存的问题。觉得不好用就别用,这里只是介绍一个简单的缓存方式,又没让你们一定要用。
斯,
我也这么认为OωO