Dengan aplikasi luas pangkalan data Redis dalam aplikasi Internet, semakin banyak perusahaan dan pembangun telah mula memberi perhatian kepada sandaran dan perlindungan pangkalan data Redis. Sandaran automatik ialah cara yang berkesan untuk memastikan keselamatan Redis Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan sandaran automatik pangkalan data Redis.
1. Sandaran pangkalan data Redis
Redis ialah pangkalan data nilai kunci sumber terbuka, tetapi juga menyokong struktur data yang kompleks, seperti senarai, jadual cincang dan Pengumpulan. dll. Sandaran Redis boleh dicapai melalui RDB dan AOF.
Sandaran RDB: Tangkap gambar set data Redis ke cakera dalam selang masa tertentu Proses sandaran tidak akan menjejaskan operasi biasa Redis. Tetapi sandaran RDB memerlukan sedikit ruang cakera.
Sandaran AOF: Rekod semua arahan tulis yang dilaksanakan oleh Redis dalam bentuk log Apabila Redis dimulakan semula, set data asal dibina semula berdasarkan log. Sandaran AOF boleh memastikan integriti data, tetapi masa pemulihan mungkin memakan masa.
Kita boleh memilih kaedah backup yang sesuai mengikut keperluan sebenar. Seterusnya kami akan memperkenalkan cara menggunakan PHP untuk melaksanakan sandaran automatik pangkalan data Redis.
2. PHP melaksanakan sandaran automatik Redis
Sebelum menggunakan PHP untuk mengendalikan Redis, anda perlu memasang sambungan Redis terlebih dahulu. Anda boleh memuat turun kod sumber sambungan Redis dari tapak web rasmi (http://pecl.php.net/package/redis), dan kemudian memasangnya mengikut langkah berikut:
(1) Nyahzip sumber pakej kod
tar - zxvf redis-x.x.x.tgz
(2) Masukkan direktori sambungan Redis
cd redis-x.x.x
(3) Susun dan pasang sambungan
phpize
./configure
make && make install
(4) Tambah konfigurasi sambungan Redis
extension=redis.so
Berikut ialah kod sampel untuk sandaran automatik pangkalan data Redis menggunakan PHP. Pertama, kita perlu menentukan parameter sambungan Redis dan laluan storan fail sandaran:
$redis_host = '127.0';
$redis_port = 6379;
$redis_auth = 'kata laluan';
$backup_dir = '/data/redis_backup. /';
Kemudian kami mentakrifkan dua fungsi, satu dengan Untuk melaksanakan sandaran RDB, satu untuk melaksanakan sandaran AOF:
//Melaksanakan sandaran RDB
fungsi redis_rdb_backup($backup_dir, $redis_host , $redis_port, $redis_auth) {
$redis = new Redis(); //连接Redis $redis->connect($redis_host, $redis_port); //认证 $redis->auth($redis_auth); //执行RDB备份命令 $result = $redis->save(); if ($result) { //将备份文件移动到指定目录 $filename = date('YmdHis').'.rdb'; $backup_file = $backup_dir.$filename; rename('/var/lib/redis/dump.rdb', $backup_file); return $filename; } else { return false; }
}
//Lakukan sandaran AOF
fungsi redis_aof_backup($backup_dir, $redis_host, $redis_port, $redis_auth) {}
$rdb_backup_time = '0 2
*'; //Lakukan sandaran RDB pada 2 pagi setiap hari$aof_backup_time = '0 2
0'; Lakukan sandaran AOF pada jam 2 pagi setiap Ahad//Tambah tugas berjadual
exec('echo "'.$rdb_backup_time.' /usr/bin/php /data/backup.php rdb >> /var/ log/crontab.log 2>&1" >> /var/ spool/cron/root');
exec('echo "'.$aof_backup_time.' /usr/bin/php /data/backup.php aof >> /var/log/crontab.log 2>&1 ">> /var/spool/cron/root');
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sandaran automatik pangkalan data Redis dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!