Home  >  Article  >  Backend Development  >  PHP and Memcached database backup and recovery

PHP and Memcached database backup and recovery

PHPz
PHPzOriginal
2023-05-15 21:12:041524browse

With the rapid development of the Internet, large-scale MySQL database backup and recovery has become one of the essential skills for major enterprises and websites. With the widespread application of Memcached, how to back up and restore Memcached has also become an important issue. As one of the main languages ​​for web development, PHP has unique advantages and skills in handling backup and recovery of MySQL and Memcached. This article will introduce in detail the implementation method of PHP processing MySQL and Memcached backup and recovery.

1. PHP and MySQL backup and recovery

1. Back up MySQL

MySQL backup refers to backing up the data and table structure in the database to the server's disk so that Use when recovery is needed. PHP implements backup by calling the mysqldump command. The mysqldump command writes the backup file to a file on the disk by default, so you need to ensure that PHP has write permission to the directory.

The PHP code for backing up the database is as follows:

<?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);
}
?>

2. Restoring MySQL

When the database needs to be restored, PHP can also achieve restoration between different versions by calling the mysql command Database recovery. It should be noted that before performing database recovery, a blank target database needs to be created, otherwise the recovery command cannot be used.

The PHP code to restore the database is as follows:

<?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);
}
?>

2. Backup and recovery of PHP and Memcached

1. Backup Memcached

Memcached is a high-speed distributed An in-memory object caching system with slightly different backup and recovery techniques than MySQL. When backing up Memcached, the cache data needs to be written to a file and placed on the backup server. Here we first use PHP to connect to the Memcached server, read the cached data and write it to the disk file.

The PHP code for backing up Memcached is as follows:

<?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;
?>

2. Restoring Memcached

When we need to restore Memcached, we need to open the backup file and connect to the Memcached server through PHP, Write the key-value pairs in the backup file to Memcached. It should be noted that the Memcached server needs to be cleared before writing.

The PHP code to restore Memcached is as follows:

<?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 "恢复成功!";
?>

To sum up, PHP processing MySQL and Memcached backup and recovery is an important skill to achieve data backup and recovery. By calling the mysqldump and mysql commands, MySQL backup and recovery can be achieved; when backing up and restoring Memcached, the key-value pairs need to be read one by one and written to the file. Through the above methods, enterprises and websites can easily backup and restore MySQL and Memcached to ensure data reliability.

The above is the detailed content of PHP and Memcached database backup and recovery. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn