Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk membina struktur cache berskala menggunakan PHP dan REDIS
Cara membina struktur cache berskala menggunakan PHP dan REDIS
Caching ialah cara penting untuk meningkatkan prestasi aplikasi web. REDIS ialah pangkalan data dalam memori sumber terbuka berprestasi tinggi yang boleh digunakan sebagai pilihan cache teragih. Artikel ini akan memperkenalkan cara membina struktur cache berskala menggunakan PHP dan REDIS.
Mula-mula, kita perlu memasang REDIS dan melaksanakan konfigurasi asas.
1.1 Muat turun dan pasang REDIS
Anda boleh memuat turun versi terkini REDIS dari tapak web rasmi REDIS (https://redis.io/download) dan pasangkannya mengikut dokumentasi rasmi.
1.2 Mulakan perkhidmatan REDIS
Lakukan arahan berikut dalam baris arahan untuk memulakan perkhidmatan REDIS:
redis-server
Menggunakan PHP untuk menyambung ke REDIS memerlukan sambungan PHP REDIS dipasang. Sambungan PHP REDIS boleh dipasang melalui arahan berikut:
pecl install redis
Dayakan sambungan REDIS dengan menambah baris berikut dalam fail php.ini:
extension=redis.so
Seterusnya, gunakan kod berikut dalam kod PHP anda untuk menyambung ke REDIS:
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); // 请根据实际情况修改主机和端口
REDIS mempunyai dua kaedah storan cache yang biasa digunakan: cache rentetan dan cache cincang. Kami akan memperkenalkan cara menggunakan kedua-dua kaedah ini masing-masing.
3.1 Cache rentetan
Cache rentetan menyimpan pasangan nilai kunci dalam REDIS, yang boleh menyimpan pelbagai jenis data secara fleksibel.
// 设置缓存 $redis->set('key', 'value'); // 获取缓存 $value = $redis->get('key'); // 判断缓存是否存在 if ($redis->exists('key')) { // 缓存存在 } else { // 缓存不存在 } // 删除缓存 $redis->del('key');
3.2 Hash cache
Hash cache menyimpan berbilang pasangan nilai kunci dalam jadual cincang REDIS, yang lebih sesuai untuk menyimpan struktur data yang kompleks.
// 设置缓存 $redis->hSet('hash', 'field1', 'value1'); $redis->hSet('hash', 'field2', 'value2'); // 获取缓存 $value1 = $redis->hGet('hash', 'field1'); $value2 = $redis->hGet('hash', 'field2'); // 获取哈希表中所有字段和值 $data = $redis->hGetAll('hash'); // 判断字段是否存在 if ($redis->hExists('hash', 'field1')) { // 字段存在 } else { // 字段不存在 } // 删除字段 $redis->hDel('hash', 'field1');
Cache perlu menetapkan masa tamat tempoh untuk mengelakkan data tamat tempoh daripada digunakan. Kita boleh menggunakan TTL (Time To Live) untuk menetapkan masa tamat tempoh cache.
// 设置缓存,并指定过期时间为60秒 $redis->set('key', 'value', 60); // 获取缓存的剩余有效时间 $ttl = $redis->ttl('key'); // 设置缓存的过期时间为0,即立即失效 $redis->expire('key', 0);
Untuk mengelakkan konflik nama kunci cache dan memudahkan pengurusan, kami boleh menggunakan ruang nama untuk membezakan data cache yang berbeza.
// 设置命名空间 $namespace = 'app:cache'; // 设置缓存,命名空间+键名 $redis->set($namespace . ':key', 'value'); // 获取缓存 $value = $redis->get($namespace . ':key'); // 删除缓存 $redis->del($namespace . ':key');
Melalui kaedah di atas, kami boleh membina struktur cache berskala berdasarkan PHP dan REDIS untuk menyediakan sokongan caching berprestasi tinggi untuk aplikasi web. Pada masa yang sama, pengembangan dan pengoptimuman selanjutnya boleh dijalankan mengikut keperluan sebenar.
Ringkasan
Artikel ini menerangkan cara membina struktur cache boleh skala menggunakan PHP dan REDIS. Dengan menggunakan REDIS sebagai storan cache, kami boleh meningkatkan prestasi aplikasi web dan mengurangkan tekanan capaian pada pangkalan data. Pada masa yang sama, melalui masa tamat tempoh cache yang munasabah dan pengurusan ruang nama, mekanisme caching yang lebih fleksibel dan terkawal boleh disediakan.
Rujukan:
Atas ialah kandungan terperinci Bagaimana untuk membina struktur cache berskala menggunakan PHP dan REDIS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!