PHP 中的数据库缓存原理
本文章作者主要是用到 php 里面的数据库缓存,php缓存,cache_write,var_export功能对数据进行缓存操作了,觉得写得很不错。
PHP 中的数据库缓存原理
本文章作者主要是用到 php 里面的数据库缓存,php缓存,cache_write,var_export功能对数据进行缓存操作了,觉得写得很不错。
如果后台应用接收到浏览器端的查询请求后,每次都与数据库连接读取数据,势必增加数据库的负担。而往往有大量的请求是重复的,我们可以把这些重复的信息采用缓存技术保存下来,重复使用,这样,在某些情况下可以大大提高程序的性能。
1,缓存函数
cache_write函数接受$string参数,写到$file文件中。注意var_export函数,作用是:
此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
这些参数可以是数组或常量,而这些数组或常量通常为从数据库中取出的记录,或非序列化(unserialize)对象后得到的数据。这些都可以缓存到本地的文本文件中。
cache_write函数很简单,需要读取数据时,先判断缓存是否存在,存在的话就不去连接数据库取数据,而是直接读出缓存的文本文件,直接产生了数组或常量等类型的数据,可以直接使用。
[php]
//文件名func.inc.php
define("CACHEDIR", "./"); //定义缓存文件夹
function cache_write($file, $string, $type = 'array')
{
if(is_array($string))
{
$type = strtolower($type);
if($type == 'array')
{
$string = "";
}
elseif($type == 'constant')
{
$data='';
foreach($string as $key => $value)
$data .= "define('".strtoupper($key)."','".addslashes($value)."');n";
$string = "";
}
}
$strlen = file_put_contents(CACHEDIR.$file, $string);
chmod(CACHEDIR.$file, 0777);
return $strlen;
}
function cache_read($file)
{
$cachefile = CACHEDIR.$file;
if(!file_exists($cachefile))
return array();
return include $cachefile;
}
function cache_delete($file)
{
return @unlink(CACHEDIR.$file);
}
if(!function_exists('file_put_contents'))
{
define('FILE_APPEND', 8);
function file_put_contents($file, $string, $append = '')
{
$mode = $append == '' ? 'wb' : 'ab';
$fp = @fopen($file, $mode) or exit("Can not open file $file !");
flock($fp, LOCK_EX);
$stringlen = @fwrite($fp, $string);
flock($fp, LOCK_UN);
@fclose($fp);
return $stringlen;
}
}
?>
[/php]
2,写缓存和读取的示例
[php]
//写缓存
include "func.inc.php";
$arr = array (1, 2, array ("a", "b", "c"));
cache_write('test.cache.php', $arr); //缓存文件 test.cache.php
?>
[/php]
[php]
//读缓存
include "func.inc.php";
$var = cache_read('test.cache.php');
print_r($new_var);
print_r($var);
foreach ($var as $k=>$v)
{
echo '
' . $k . '=' . $v ;
}
?>
[/php]
3,性能分析
缓存之所以能提高性能,是通过本地磁盘空间换网络存取速度和数据库服务器存取时间的结果。
a = 本机读写时间
b = 本机占用空间
c = 网络传输时间
d = 数据库服务器磁盘时间
可以估算到,如果数据库与应用程序存在于一台机器时,主要是 a 与 d 的比较,效果可能并不明显,甚至还要糟一点。因为数据库系统针对磁盘存取经过了精心优化,是操作系统对文件的普通读写无法相比的。
如果本机的磁盘存取效率不佳,有时从局域网的数据库上取得数据,可能比从本机的缓存取数据还快,这种情况比较少见。而随着请求数量的大量增加,缓存的效果就会明显起来。
觉得很不错,所以推荐一下。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.
