Apabila aplikasi web berkembang, pertanyaan pangkalan data dan kemas kini menjadi kesesakan. Walaupun pangkalan data MySQL tradisional menyokong indeks, prestasi pertanyaan pada set data berskala besar masih terhad. Untuk menyelesaikan masalah ini, ramai pembangun telah mula menggunakan teknologi caching Redis. Menggunakan Redis sebagai cache boleh meningkatkan kelajuan dan responsif aplikasi web anda.
Redis ialah penyelesaian storan data dalam memori untuk akses data pantas. Adalah disyorkan untuk menggunakan Redis dengan pangkalan data hubungan seperti MySQL untuk kelajuan pertanyaan yang lebih pantas dan prestasi yang lebih baik.
Berikut ialah langkah mudah untuk melaksanakan pengoptimuman indeks pangkalan data menggunakan teknologi caching Redis dalam aplikasi PHP.
Sebelum menggunakan Redis, anda perlu memasang Redis pada pelayan. Laman web rasmi menyediakan arahan pemasangan terperinci. Pada Ubuntu, Redis boleh dipasang menggunakan arahan berikut:
sudo apt-get install redis
PHP Sambungan Redis ialah sambungan PHP , Boleh berkomunikasi dengan pelayan Redis. Ia tersedia pada Linux, Windows dan Mac OS X. Sambungan PHP Redis boleh dipasang pada Ubuntu menggunakan arahan berikut:
sudo apt-get install php-redis
Menggunakan sambungan PHP Redis, data boleh disimpan pada pelayan Redis. Berikut ialah contoh kod untuk menyimpan data dalam Redis:
//连接Redis服务器 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //向Redis写入数据 $redis->set('key', 'value'); //从Redis读取数据 $value = $redis->get('key'); echo $value;
Kod di atas menghubungkan Redis ke pelayan setempat, menyimpan pasangan nilai kunci, membaca nilai kunci daripada Redis dan mencetaknya.
Menggunakan Redis untuk cache hasil pertanyaan MySQL ialah cara yang berkesan untuk meningkatkan prestasi pertanyaan. Berikut ialah contoh kod untuk menyimpan cache hasil pertanyaan MySQL:
//连接Redis服务器 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //检查Redis中是否存在缓存 if ($redis->exists('key')) { //从Redis中读取缓存数据 $result = unserialize($redis->get('key')); } else { //查询MySQL数据库 $result = mysqli_query($con, "SELECT * FROM table"); //将结果存储在Redis中 $redis->set('key', serialize($result)); } //处理结果 while ($row = mysqli_fetch_assoc($result)) { //处理每条记录 }
Dalam kod ini, Redis pertama kali digunakan untuk menyemak sama ada cache wujud. Jika cache wujud, data cache akan dibaca daripada Redis. Jika tidak, pangkalan data MySQL akan ditanya dan hasilnya disimpan dalam Redis. Pada pertanyaan seterusnya, data cache akan dibaca daripada Redis dan bukannya menanya semula MySQL.
Apabila menyimpan data dalam Redis, anda boleh menetapkannya untuk tamat tempoh selepas tempoh masa tertentu. Ini bermakna apabila data tamat tempoh, ia akan dipadam secara automatik oleh Redis. Ini memastikan bahawa cache adalah sah dan tidak menduduki memori secara kekal.
Berikut ialah contoh kod yang menggunakan tarikh tamat tempoh pada cache Redis:
//连接Redis服务器 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //检查Redis中是否存在缓存 if ($redis->exists('key')) { //获取缓存数据和生存时间 $result = unserialize($redis->get('key')); $ttl = $redis->ttl('key'); if ($ttl < 60) { //如果缓存即将过期,重新查询MySQL数据库 $result = mysqli_query($con, "SELECT * FROM table"); //将结果存储在Redis中,有效期为60秒 $redis->setex('key', 60, serialize($result)); } } else { //查询MySQL数据库 $result = mysqli_query($con, "SELECT * FROM table"); //将结果存储在Redis中,有效期为60秒 $redis->setex('key', 60, serialize($result)); } //处理结果 while ($row = mysqli_fetch_assoc($result)) { //处理每条记录 }
Dalam kod ini, tarikh tamat tempoh Cache ditetapkan kepada 60 saat. Jika data tamat tempoh, ia akan dimuat semula daripada pangkalan data MySQL dan disimpan semula dalam Redis.
Dalam artikel ini, kami membincangkan cara mengoptimumkan indeks pangkalan data menggunakan cache Redis. Redis ialah penyelesaian storan data dalam memori yang berkuasa yang boleh meningkatkan prestasi aplikasi web dengan ketara. Menggunakan sambungan PHP Redis, anda boleh menyimpan data dengan mudah dalam Redis dan membacanya daripada cache menggunakan kaedah yang cekap.
Atas ialah kandungan terperinci Gunakan teknologi caching Redis untuk mengoptimumkan indeks pangkalan data dalam aplikasi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!