Maison > développement back-end > tutoriel php > Sauvegarde et récupération de bases de données PHP et Memcached

Sauvegarde et récupération de bases de données PHP et Memcached

PHPz
Libérer: 2023-05-15 21:16:02
original
1562 Les gens l'ont consulté

Avec le développement rapide d'Internet, la sauvegarde et la restauration de bases de données MySQL à grande échelle sont devenues l'une des compétences essentielles des grandes entreprises et des sites Web. Avec l'application généralisée de Memcached, la manière de sauvegarder et de restaurer Memcached est également devenue un problème important. En tant que l'un des principaux langages de développement Web, PHP présente des avantages et des compétences uniques dans la gestion de la sauvegarde et de la récupération de MySQL et Memcached. Cet article présentera en détail la méthode d'implémentation du traitement PHP de la sauvegarde et de la récupération MySQL et Memcached.

1. Sauvegarde et récupération PHP et MySQL

1. Sauvegarder MySQL

La sauvegarde MySQL fait référence à la sauvegarde des données et de la structure des tables de la base de données sur le disque du serveur pour une utilisation lorsqu'une récupération est nécessaire. PHP implémente la sauvegarde en appelant la commande mysqldump. La commande mysqldump écrit le fichier de sauvegarde dans un fichier sur le disque par défaut, vous devez donc vous assurer que PHP dispose des autorisations d'écriture sur le répertoire.

Le code PHP pour sauvegarder la base de données est le suivant :

<?php
//数据库连接信息
$username = "root";
$password = "password";
$host = "localhost";
$database = "database_name";

//备份文件名
$filename = "./backup_" . date("Y_m_d_H_i_s") . ".sql";

//执行备份命令
$command = "mysqldump --opt -h{$host} -u{$username} -p{$password} {$database}>{$filename}";
exec($command, $output, $return_var);

//判断备份是否成功
if($return_var == 0){
    echo "备份成功!";
}else{
    echo "备份失败:".implode(",", $output);
}
?>
Copier après la connexion

2. Restaurer MySQL

Lorsque la base de données doit être restaurée, PHP peut également restaurer la base de données entre différentes versions en appelant la commande mysql. Il convient de noter qu'avant d'effectuer la récupération de la base de données, une base de données cible vide doit être créée, sinon la commande de récupération ne pourra pas être utilisée.

Le code PHP pour restaurer la base de données est le suivant :

<?php
//数据库连接信息
$username = "root";
$password = "password";
$host = "localhost";
$database = "database_name";

//备份文件名
$filename = "./backup_2020_05_10_01_23_45.sql";

//执行恢复命令
$command = "mysql -h{$host} -u{$username} -p{$password} {$database}<{$filename}";
exec($command, $output, $return_var);

//判断恢复是否成功
if($return_var == 0){
    echo "恢复成功!";
}else{
    echo "恢复失败:".implode(",", $output);
}
?>
Copier après la connexion

2. Sauvegarde et récupération PHP et Memcached

1 Sauvegarde Memcached

Memcached est un système de cache d'objets de mémoire distribuée à grande vitesse, ainsi que sa sauvegarde et sa récupération. les techniques sont légèrement différentes de MySQL. Lors de la sauvegarde de Memcached, les données du cache doivent être écrites dans un fichier et placées sur le serveur de sauvegarde. Ici, nous utilisons d'abord PHP pour nous connecter au serveur Memcached, lire les données mises en cache et les écrire dans le fichier disque.

Le code PHP pour sauvegarder Memcached est le suivant :

<?php
//Memcached连接信息
$servers = array(
    array("127.0.0.1", 11211, 10),
);

//备份文件名
$filename = "./backup_" . date("Y_m_d_H_i_s") . ".dat";

//连接Memcached
$memcache_obj = new Memcache;
foreach($servers as $server){
    $memcache_obj->addServer($server[0], $server[1], true, $server[2]);
}

//获取所有键值对
$all_items = $memcache_obj->getAllKeys();
$fp = fopen($filename, 'wb');

//把键值对写入文件
foreach($all_items as $item){
    $value = $memcache_obj->get($item);
    fwrite($fp, $item . "    " . $value . "
");
}

fclose($fp);

//输出备份文件名
echo $filename;
?>
Copier après la connexion

2 Restaurer Memcached

Lorsque nous devons restaurer Memcached, nous devons ouvrir le fichier de sauvegarde, nous connecter au serveur Memcached via PHP et écrire la clé. paires de valeurs dans le fichier de sauvegarde au milieu Memcached. Il convient de noter que le serveur Memcached doit être effacé avant d'écrire.

Le code PHP pour restaurer Memcached est le suivant :

<?php
//Memcached连接信息
$servers = array(
    array("127.0.0.1", 11211, 10),
);

//备份文件名
$filename = "./backup_2020_05_10_01_23_45.dat";

//连接Memcached
$memcache_obj = new Memcache;
foreach($servers as $server){
    $memcache_obj->addServer($server[0], $server[1], true, $server[2]);
}

//读取备份文件中的键值对,并写入Memcached
$fp = fopen($filename, 'rb');
$memcache_obj->flush();

while(!feof($fp)){
    $line = fgets($fp);
    $arr = explode("    ", $line);
    if(count($arr) == 2){
        $memcache_obj->set($arr[0], $arr[1], 0, 0);
    }
}
fclose($fp);

//输出恢复成功信息
echo "恢复成功!";
?>
Copier après la connexion

Pour résumer, le traitement PHP de la sauvegarde et de la récupération MySQL et Memcached est une compétence importante pour réaliser la sauvegarde et la récupération des données. En appelant les commandes mysqldump et mysql, la sauvegarde et la récupération MySQL peuvent être réalisées ; lors de la sauvegarde et de la restauration de Memcached, les paires clé-valeur doivent être lues une par une et écrites dans le fichier. Grâce aux méthodes ci-dessus, les entreprises et les sites Web peuvent facilement sauvegarder et restaurer MySQL et Memcached pour garantir la fiabilité des données.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal