返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php如何实现缓存类代码
  • 306
分享到

php如何实现缓存类代码

php缓存类代码 2016-08-24 10:08:57 306人浏览
摘要

php实现缓存类代码的方法:【$cache = new Cache(); $values = $cache->get($key); if ($values == false) {$cache->put($key, $values)...】。

本文操作环境:windows10系统、PHP 7、thinkpad t480电脑。

使用说明:

实例化

$cache = new Cache();

设置缓存时间和缓存目录

$cache = new Cache(60, '/any_other_path/');

第一个参数是缓存秒数,第二个参数是缓存路径,根据需要配置。
默认情况下,缓存时间是 3600 秒,缓存目录是 cache/

读取缓存

$value = $cache->get('data_key');

写入缓存

$value = $cache->put('data_key', 'data_value');

完整实例:

$cache = new Cache();
   
//从缓存从读取键值 $key 的数据
$values = $cache->get($key);
   
//如果没有缓存数据
if ($values == false) {
//insert code here...
//写入键值 $key 的数据
$cache->put($key, $values);
} else {
//insert code here...
}

Cache.class.php

<?php
class Cache {
private $cache_path;//path for the cache
private $cache_expire;//seconds that the cache expires
   
//cache constructor, optional expiring time and cache path
public function Cache($exp_time=3600,$path="cache/"){
$this->cache_expire=$exp_time;
$this->cache_path=$path;
}
   
//returns the filename for the cache
private function fileName($key){
return $this->cache_path.md5($key);
}
   
//creates new cache files with the given data, $key== name of the cache, data the info/values to store
public function put($key, $data){
$values = serialize($data);
$filename = $this->fileName($key);
$file = fopen($filename, 'w');
if ($file){//able to create the file
fwrite($file, $values);
fclose($file);
}
else return false;
}
   
//returns cache for the given key
public function get($key){
$filename = $this->fileName($key);
if (!file_exists($filename) || !is_readable($filename)){//can't read the cache
return false;
}
if ( time() < (filemtime($filename) + $this->cache_expire) ) {//cache for the key not expired
$file = fopen($filename, "r");// read data file
if ($file){//able to open the file
$data = fread($file, filesize($filename));
fclose($file);
return unserialize($data);//return the values
}
else return false;
}
else return false;//was expired you need to create new
}
}
?>

--结束END--

本文标题: php如何实现缓存类代码

本文链接: https://www.lsjlt.com/news/393.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • cdn缓存如何实现
    实现原理:1.作为ICP,需要把域名解释权交给CDN运营商。2.作为CDN运营商,需要为ICP的域名提供公开的解析,为了实现sortlist,一般是把ICP的域名解释结果指向一个CNAME记录。3.需要进行sortlist时,CDN运营商利 ...
    336
    2023-03-24
    CDN cdn缓存
  • PHP如何实现记录代码运行时间封装类
    这篇文章给大家分享的是有关PHP如何实现记录代码运行时间封装类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例代码class TimeCost{ private $cost = array(); priva ...
    163
    2023-03-24
    php
  • PHP/EclipsePHP如何实现代码自动提示
    这篇文章主要为大家展示了“PHP/EclipsePHP如何实现代码自动提示”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP/EclipsePHP如何实现代码自动提示”这篇文章吧。但是即使是安 ...
    1122
    2023-03-24
    php
  • redis如何实现多级缓存
    按照粒度由粗到细:以商品详情页为例1、页面级别缓存(有时也叫url级别缓存,将页面手动渲染存到redis(key=商品id ...
    329
    2023-03-24
    redis 多级缓存 edi
  • redis如何实现清空缓存
    目录r编程客栈edis如何清空缓存正文Redis缓存问题如何清空我的是免安装版的redisredis如何清空缓存如果你们的项目用到redis啦,虽然设置了过期时间,但有时候修改bug,仍然需要及时清空缓存,去读数据库的数据,所以这篇文章讲 ...
    525
    2023-03-24
    redis清空缓存 清空缓存 redis如何清理缓存
  • php如何实现数据库操作类的封装
    这篇文章主要为大家展示了“php如何实现数据库操作类的封装”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php如何实现数据库操作类的封装”这篇文章吧。具体内容如下一、代码?php cla ...
    336
    2023-03-24
    php 数据库
  • SpringCache如何实现请求级别缓存
    这篇文章将为大家详细讲解有关SpringCache如何实现请求级别缓存,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方案分析要将数据缓存在一次请求周期内,那我们先得区分是什么环境下的请求,以分析我们如何存 ...
    584
    2023-03-24
    springcache
  • php如何实现限时
    php实现限时的方法:1、通过“set_time_limit(0)”让程序无限制执行下去;2、通过ini_set设置内存限制;3、设置每隔半小时运行即可。 ...
    888
    2023-03-24
    php
  • php如何实现翻转
    php实现翻转的方法:1、使用strrev()函数实现英文字符串翻转;2、通过自定义的selfStrrev方法实现中文字符串翻转。 ...
    264
    2023-03-24
    php
  • php和html如何实现商务通跳转代码
    小编给大家分享一下php和html如何实现商务通跳转代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php商务通跳转代码写一段商务通跳转代码,要求:1)保证打开 ...
    436
    2023-03-24
    php html
  • nodejs如何使用redis作为缓存介质实现封装缓存类
    小编给大家分享一下nodejs如何使用redis作为缓存介质实现封装缓存类,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:之前在node下使用redis作 ...
    423
    2023-03-24
    nodejs redis
  • 如何实现redis分布式缓存
    摘要: 第一:Redis 是什么? Redis是基于内存、可持久化的日志型、Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data Structure)需求越来越多, 但memcache中没有 ...
    479
    2023-03-24
    分布式 架构设计 ×redis
  • spring redis注解如何实现缓存机制
    这篇文章给大家分享的是有关spring redis注解如何实现缓存机制的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。1、xml配置 bean id="poolConfigTax" class="redis.cl ...
    660
    2023-03-24
    spring redis edi
  • Redis如何实现LRU缓存淘汰算法
    小编给大家分享一下Redis如何实现LRU缓存淘汰算法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1 标准LRU的实现原理LRU,最近最少使用(Least Re ...
    290
    2023-03-24
    redis lru
  • vue移动端项目中如何实现页面缓存的示例代码
    这篇文章主要介绍了vue移动端项目中如何实现页面缓存的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 ...
    943
    2023-03-24
    vue移动端页面缓存 vue 页面缓存
  • php如何实现禁止采集
    php禁止采集的方法:1、创建一个PHP示例文件;2、通过“$HTTP_REFERER = $_SERVER["HTTP_REFERER"];$HTTP_USER_AGENT =...”方法实现防采集即可。 ...
    730
    2023-03-24
    php
  • php如何实现SSO登录
    php实现SSO登录的方法:1、用户进入登录页生成自定义SID,写入redis和cookie;2、在业务的BaseController的构造函数,写一个更新redis的操作;3、js构造跳转事件,然后服务端根据SID查看该用户存redis。 ...
    395
    2023-03-24
    php SSO
  • php如何实现人脸对比
    php实现人脸对比的方法:1、创建一个PHP示例文件;2、查询人脸对比接口地址;3、请求人脸对比接口数据;4、解析数据并通过“function base64EncodeImage(){...}”和“function request(){...}”方法进行网络请求及图片对比即可。 ...
    728
    2023-03-24
    人脸对比 php
  • PHP如何实现求阶乘
    小编给大家分享一下PHP如何实现求阶乘,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! function factorial ($x) {if ($x ...
    704
    2023-03-24
    php
  • php如何实现多个判断
    这篇文章主要介绍了php如何实现多个判断,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。多个判断$a = 1;//写法一if($a === 0){//}elseif($a ...
    278
    2023-03-24
    php
热门问答
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作