Maison  >  Article  >  développement back-end  >  Comment implémenter le code de mise en cache en php

Comment implémenter le code de mise en cache en php

王林
王林original
2021-10-21 17:05:311886parcourir

Méthode PHP pour implémenter le code de classe de cache : [$cache = new Cache(); $values ​​​​= $cache->get($key); if ($values ​​​​== false) {$cache->); ;put($ clé, $values)...].

Comment implémenter le code de mise en cache en php

L'environnement d'exploitation de cet article : système windows10, php 7, ordinateur thinkpad t480.

Instructions d'utilisation :

1. Instanciez

$cache = new Cache();

2. Définissez l'heure du cache et le répertoire du cache

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

Le premier paramètre est les secondes du cache, et le deuxième paramètre est le chemin du cache, configurez-le selon vos besoins.
Par défaut, le temps de cache est de 3600 secondes, le répertoire de cache est cache/

3, lisez cache

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

4, écrivez cache

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

Exemple complet :

$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, &#39;w&#39;);
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&#39;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
}
}
?>

Apprentissage recommandé : formation php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn