PHP 写入缓存

1.创建file.PHP

<?php

class File{

//封装方法

private $_dir;

const EXT=‘.text‘;//文件后缀,定义为常量

public function __contruct(){

$this->_dir=dirname(__FILE__).‘/files/‘;//默认存货缓存文件夹数据

}

//$key文件名,$path,路径

public function cacheData($key,$value="",$path=""){

$filename=$this->_dir.$path.$key.self::EXT;

//有值,写入缓存

if($value !==""){

$dir=dirname($filename);//判断目录是否存在

if(!is_dir($dir)){

mkdir($dir,0777);

}

return file_put_contents($filename,json_encode($value));//写入成功,返回数据,失败false

}

}

}

?>

2.创建text.php

<?php

require_once(‘./file.php‘);

$data=array(

‘id‘=>1,

‘name‘=>‘niao‘,

‘type‘=>array(4,5,6),

‘test‘=>array(1,45,67)

);

$file=new File();

if($file->cacheData(‘index_mk_cache‘,$data)){

echo ‘succ‘;

}else{

echo ‘error‘;

}

?>

注意:生成一个index_mk_cache.txt格式的文件.里面包含写入的数据

时间: 2024-07-31 12:35:41

PHP 写入缓存的相关文章

为什么希捷选择了8GB作为标准的闪存容量呢?答案就在下面(新的驱动器可以实现一定程度上的写入缓存)

与前两代Momentus XT产品不同,希捷称第三代混合硬盘所使用的技术更接近真正的SSHD(Solid State Hybrid Disk?),而不是HHD.也就是说更偏向于固态硬盘.首先它不会属于Momentus XT系列,至少不会是Momentus品牌.希捷似乎有意将其宣传为笔记本电脑SSHD.台式机SSHD或是笔记本轻薄SSHD,这就让人听得一头雾水.至于为什么希捷要放弃原有的Momentus XT之名,公司并没有给出任何关于这方面的解答. 那么,为什么希捷选择了8GB作为标准的闪存容量

EHcache缓存写入内存和硬盘机制

Ehcache是用于配置管理缓存的一个缓存框架,我们从它的ehcache.xml文件中分析,它是如何将数据插入内存和硬盘中. <?xml version="1.0" encoding="UTF-8"?> <ehcache> <diskStore path="java.io.tmpdir" /> <defaultCache maxElementsInMemory="500" eterna

一个缓存容灾写的样例

背景 有时我们能够使用缓存进行容灾的处理.场景例如以下:我们当前有一个专门提供各种数据的应用DataCore,该应用开放多个RFC方法供其它应用使用.      我们平时在读写数据时,会在Cache备份一份(为平时DataCore提高响应速度.减少DB.CPU压力所用),当DB挂掉的时候.Cache还能够用来容灾.使用缓存容灾的优点是:性能足够好,坏处是缓存可比数据库成本高多了. 让我们想象得更猛烈些,当DataCore整个挂掉的时候,A.B.C.D方怎么才干安然的执行下去? 我们能够在A.B.

Web 开发后端缓存思路

数据写入缓存: 在数据库与服务端之间利用 redis 这是一个很常见的场景.比如文章的浏览数,每次文章被浏览时,浏览数都 +1.如果每次都回写数据库,不免数据量太大.加上数据库看似简单,其实做了不少关于一致性(请看官了解一下所谓[一致性],[base],[acid])的检查. 而同时,浏览数并不要求保证一致性,只要大概准确就行了. 所以这时候,我们可以先将浏览数写入 redis,满足一定条件后,再回写数据库. 比如,在 controller 中,让每次浏览都在 redis 上 +1,+1 完成后

C#缓存absoluteExpiration、slidingExpiration两个参数的疑惑

看了很多资料终于搞明白cache中absoluteExpiration,slidingExpiration这两个参数的含义. absoluteExpiration:用于设置绝对过期时间,它表示只要时间一到就过期,所以类型为System.DateTime,当给这个参数设置了一个时间时,slidingExpiration参数的值就只能为Cache.NoSlidingExpiration,否则出错: slidingExpiration:用于设置可调过期时间,它表示当离最后访问超过某个时间段后就过期,所

大型网站架构系列:缓存在分布式系统中的应用(三)

本文是<缓存在分布式系统中的应用>第三篇文章. 上次主要给大家分享了,缓存在分布式系统中的应用,主要从不同的场景,介绍了CDN,反向代理,分布式缓存,本地缓存的常规架构和基本原理. 因为时间关于,原计划分享<缓存常见问题>的内容,没有讲.本次主要针对缓存的常见个问题,做一个介绍.主要有以下议题: 一.分享大纲 分享大纲 数据一致性 缓存高可用 缓存雪崩 缓存穿透 参考资料 分享总结 二.数据一致性 缓存是在数据持久化之前的一个节点,主要是将热点数据放到离用户最近或访问速度更快的介质

Spring整合Redis做数据缓存(Windows环境)

当我们一个项目的数据量很大的时候,就需要做一些缓存机制来减轻数据库的压力,提升应用程序的性能,对于java项目来说,最常用的缓存组件有Redis.Ehcache和Memcached. Ehcache是用java开发的缓存组件,和java结合良好,直接在jvm虚拟机中运行,不需要额外安装什么东西,效率也很高:但是由于和java结合的太紧密了,导致缓存共享麻烦,分布式集群应用不方便,所以比较适合单个部署的应用. Redis需要额外单独安装,是通过socket访问到缓存服务,效率比Ehcache低,但

asp.net性能优化之使用Redis缓存(入门)

1:使用Redis缓存的优化思路 redis的使用场景很多,仅说下本人所用的一个场景: 1.1对于大量的数据读取,为了缓解数据库的压力将一些不经常变化的而又读取频繁的数据存入redis缓存 大致思路如下:执行一个查询 1.2首先判断缓存中是否存在,如存在直接从Redis缓存中获取. 1.3如果Redis缓存中不存在,实时读取数据库数据,同时写入缓存(并设定缓存失效的时间). 1.4缺点,如果直接修改了数据库的数据而又没有更新缓存,在缓存失效的时间内将导致读取的Redis缓存是错误的数据. 2:R

缓存穿透和缓存失效

缓存穿透 是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个存在的数据每次请求都要到存储层去查询,失去了缓存的意义. 有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力(类似无结果cache).在数据魔方里,我们采用了一个更为简单粗暴的方法,如果一个查询返回的数据为空(