Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk membina struktur cache berskala menggunakan PHP dan REDIS

Bagaimana untuk membina struktur cache berskala menggunakan PHP dan REDIS

PHPz
PHPzasal
2023-07-22 15:21:11686semak imbas

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.

  1. Pasang dan konfigurasikan 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
  1. Gunakan PHP untuk menyambung ke REDIS

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); // 请根据实际情况修改主机和端口
  1. Gunakan REDIS sebagai storan Cache

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');
  1. Cache tamat tempoh dan pengendalian ketidaksahihan

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);
  1. Cache ruang nama dan pemprosesan nama kunci

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:

  • Dokumentasi rasmi PHP: https://www.php.net/
  • Dokumentasi rasmi REDIS: https://redis.io/

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn