백엔드 개발 PHP 튜토리얼 简单的php缓存类分享 php缓存机制_php实例

简单的php缓存类分享 php缓存机制_php实例

Jun 07, 2016 pm 05:22 PM
PHP 캐싱 기술 PHP 캐싱 메커니즘

复制代码 代码如下:

class Cache
{
 private $dir = "data/cache/";//定义缓存目录 
 private $key='c_a_sss'; // 文件名md5加密密钥

 function set_dir($dirpath)
 {
  $this->dir=$dirpath;
  $this->make_dir($this->dir);
 }
 function read($key,$minutes=1)
 {
  $filename=$this->get_filename($key);
  if($datas = @file_get_contents($filename))
  {
    $datas = unserialize($datas);
    if(time() - $datas['time']     {
     return $datas['data'];
    }
  }
  return false;
 }

 function write($key,$data)
 {  
  $filename=$this->get_filename($key);
  if($handle = fopen($filename,'w+'))
  {
   $datas = array('data'=>$data,'time'=>time());
   flock($handle,LOCK_EX);
   $rs = fputs($handle,serialize($datas));
   flock($handle,LOCK_UN);
   fclose($handle);
   if($rs!==false){return true;  }
  }
  return false;
 }
 function clear_all()
 {
  $dir=$this->dir;
  $this->del_file($dir); 
 }

  private function get_filename($key)
 {
  return $this->dir.$key.'_'.md5($key.$this->key);
 }
 private function make_dir($path)
 {
  if (! file_exists ( $path ))
  {
   $this->make_dir ( dirname ( $path ) );
   if (! mkdir ( $path, 0777 ))
   die ( '无法创建缓存文件夹' . $path );
  }
 }
 private function del_file($dir)
 {
  if (is_dir($dir))
  {
   $dh=opendir($dir);//打开目录 //列出目录中的所有文件并去掉 . 和 ..
   while (false !== ( $file = readdir ($dh))) {
    if($file!="." && $file!="..") {
     $fullpath=$dir."/".$file;
     if(!is_dir($fullpath)) {
      unlink($fullpath);
     } else {
      $this->del_file($fullpath);
     }
    }
   }
   closedir($dh);
  }
 }
}

$cache = new cache();
  $cache->set_dir('data/cache_dir/');
  $data=$cache->read('sys',1);
  if(empty($data))
  {
   $data=array('aa'=>1111,'bb'=>2222,'date'=>date('Y-m-d H:i:s'));
   $cache->write('sys',$data); 
  }
  print_r($data);

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP로 웹사이트 성능과 로딩 속도를 최적화하는 방법 PHP로 웹사이트 성능과 로딩 속도를 최적화하는 방법 Sep 12, 2023 am 10:13 AM

PHP로 웹사이트 성능과 로딩 속도를 최적화하는 방법

PHP에서 캐싱 기술을 통해 동적 데이터 캐싱을 구현하는 방법은 무엇입니까? PHP에서 캐싱 기술을 통해 동적 데이터 캐싱을 구현하는 방법은 무엇입니까? Jun 21, 2023 am 08:10 AM

PHP에서 캐싱 기술을 통해 동적 데이터 캐싱을 구현하는 방법은 무엇입니까?

정적 리소스 파일에 대한 PHP 캐싱 기술의 효율성 분석 정적 리소스 파일에 대한 PHP 캐싱 기술의 효율성 분석 Jun 19, 2023 pm 10:49 PM

정적 리소스 파일에 대한 PHP 캐싱 기술의 효율성 분석

PHP 캐싱 메커니즘에 대한 자세한 설명: 작동 원리 및 실제 적용에 대한 심층 탐구 PHP 캐싱 메커니즘에 대한 자세한 설명: 작동 원리 및 실제 적용에 대한 심층 탐구 Jan 23, 2024 am 09:13 AM

PHP 캐싱 메커니즘에 대한 자세한 설명: 작동 원리 및 실제 적용에 대한 심층 탐구

PHP의 캐싱 기술 및 구현 방법 PHP의 캐싱 기술 및 구현 방법 Jun 23, 2023 am 11:31 AM

PHP의 캐싱 기술 및 구현 방법

PHP 캐싱 메커니즘 이해: 다양한 구현 탐색 PHP 캐싱 메커니즘 이해: 다양한 구현 탐색 Jan 23, 2024 am 09:53 AM

PHP 캐싱 메커니즘 이해: 다양한 구현 탐색

PHP의 캐싱 기술 가이드 PHP의 캐싱 기술 가이드 Jun 11, 2023 am 09:04 AM

PHP의 캐싱 기술 가이드

PHP 성능 개선: 캐싱 기술 활용 PHP 성능 개선: 캐싱 기술 활용 Jun 30, 2023 pm 10:18 PM

PHP 성능 개선: 캐싱 기술 활용

See all articles