Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan PHP dan Redis untuk melaksanakan caching dan meningkatkan prestasi tapak web

Gunakan PHP dan Redis untuk melaksanakan caching dan meningkatkan prestasi tapak web

PHPz
PHPzasal
2023-06-27 17:43:41878semak imbas

Pada masa kini, laman web telah menjadi bahagian yang sangat diperlukan dalam kehidupan orang ramai. Walau bagaimanapun, apabila trafik tapak web meningkat, pengalaman pengguna sering menderita. Meningkatkan prestasi laman web telah menjadi tugas penting untuk pentadbir dan pembangun laman web. Artikel ini akan memperkenalkan cara menggunakan PHP dan Redis untuk melaksanakan caching untuk meningkatkan prestasi tapak web.

  1. Apa itu Redis?

Redis ialah sistem pengurusan pangkalan data cache berasaskan memori. Ia boleh digunakan sebagai pangkalan data, cache dan broker mesej. Kelebihan Redis ialah storan berkelajuan tinggi dan mekanisme pengambilan semula, yang malah boleh memberikan kelajuan yang lebih tinggi daripada storan cakera. Selain itu, Redis juga menyokong pelbagai struktur data, termasuk rentetan, cincangan, senarai, set dan set tertib.

  1. Senario aplikasi Redis

Redis mempunyai berbilang senario aplikasi dalam aplikasi web, yang paling biasa ialah caching. Dengan menggunakan cache Redis, kebanyakan aplikasi web boleh memperoleh peningkatan prestasi yang ketara.

Selain caching, Redis juga boleh digunakan untuk memproses data sesi Untuk laman web berbilang pelayan yang perlu berkongsi data sesi, menggunakan Redis boleh menguruskan data sesi dengan mudah tanpa memerlukan storan berasaskan fail atau pangkalan data.

Selain itu, Redis juga boleh digunakan untuk broker mesej. Oleh kerana Redis sangat pantas, ia sesuai untuk membina aplikasi masa nyata seperti permainan dalam talian, sebut harga saham dan aplikasi sembang.

  1. Menggunakan Redis dengan PHP

PHP ialah bahasa skrip sebelah pelayan yang popular yang digunakan secara meluas dalam pembangunan aplikasi web. Untuk menggunakan Redis, kita perlu menggunakan perpustakaan PHP untuk berkomunikasi dengan Redis. Terdapat dua perpustakaan PHP utama untuk berkomunikasi dengan Redis: sambungan phpredis dan perpustakaan Predis. Sambungan

phpredis disediakan oleh pasukan Redis dan serasi dengan PHP 5.3 dan ke atas. Sebaliknya, perpustakaan Predis ialah pelaksanaan PHP tulen pustaka Redis yang menyokong PHP 5.3 dan lebih tinggi. Pustaka Predis sangat mudah kerana ia boleh dipasang dan digunakan melalui Komposer.

Demo berikut menggunakan Redis melalui sambungan phpredis dan perpustakaan Predis.

3.1 Menggunakan sambungan phpredis

Mula-mula, kita perlu memasang sambungan phpredis. Jika anda menggunakan Ubuntu, anda boleh memasangnya melalui arahan berikut:

sudo apt-get install php-redis

Selepas pemasangan selesai, kami boleh menyambung ke Redis melalui kod berikut:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

Anda boleh menukar IP dan port yang disambungkan kepada IP dan port daripada pelayan Redis.

Selepas sambungan berjaya, kita boleh menyimpan dan mendapatkan semula data daripada Redis menggunakan kaedah berikut:

// 存储数据
$redis->set('key', 'value');

// 检索数据
$value = $redis->get('key');

Apabila data wujud dalam Redis, pembolehubah $value akan mengandungi nilai yang diambil daripada Redis.

3.2 Menggunakan perpustakaan Predis

Jika anda memilih untuk menggunakan perpustakaan Predis, anda boleh menggunakan Komposer untuk menambahkannya pada projek anda. Predis boleh dipasang menggunakan arahan berikut:

composer require predis/predis

Kaedah menyambung ke Redis dan menyimpan serta mendapatkan semula data adalah sama seperti sambungan phpredis:

// 连接Redis
$redis = new PredisClient(array(
    'scheme' => 'tcp',
    'host'   => '127.0.0.1',
    'port'   => 6379,
));

// 存储数据
$redis->set('key', 'value');

// 检索数据
$value = $redis->get('key');
  1. Pelaksanaan cache Redis

Cache biasanya dengan menyimpan tetapi kerap diakses tidak perlu diambil dari sumber asal dengan kerap data untuk dicapai. Cache boleh disimpan dalam memori supaya ia boleh diakses dengan cepat.

Menggunakan cache Redis dalam PHP ialah proses yang mudah. Terdapat dua mod utama caching Redis: caching kunci tunggal dan caching berbilang kunci.

Caching kunci tunggal ialah mod caching yang paling mudah. Ia menyimpan satu nilai dalam Redis dan mengambil nilai itu hanya apabila diperlukan. Berikut ialah kod untuk pelaksanaan cache kunci tunggal:

function get_data_from_cache_or_db($key) {
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);

    $value = $redis->get($key);

    if ($value === false) {
        // 如果缓存中没有值,从数据库中检索数据
        $value = get_data_from_database($key);

        // 只有当数据从数据库中检索时,才将数据存储到缓存中
        $redis->set($key, $value);
    }

    return $value;
}

Dalam kod di atas, apabila tiada nilai dalam cache, ia akan mendapatkan semula data daripada pangkalan data dan menyimpannya ke dalam Redis. Dengan cara ini, data boleh diambil terus daripada Redis pada lawatan seterusnya.

Sebaliknya, cache berbilang kunci ialah bentuk cache Redis yang lebih maju. Mod ini dilaksanakan dengan menyimpan berbilang kunci dalam cincang Redis. Dalam mod ini, setiap permintaan boleh cache dan mendapatkan semula data dengan menghantar satu pengecam. Berikut ialah kod pelaksanaan untuk berbilang cache kunci:

function get_data_from_cache_or_db($id) {
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);

    $cached_data = $redis->hget('cached_data', $id);

    if ($cached_data === false) {
        // 如果缓存中没有值,从数据库中检索数据
        $data = get_data_from_database($id);

        // 保存数据到缓存哈希
        $redis->hset('cached_data', $id, serialize($data));
    } else {
        $data = unserialize($cached_data);
    }

    return $data;
}

Dalam kod di atas, nama kunci cincang Redis ialah "data_cache", dan kami menyimpan setiap item data dalam cincang sebagai kunci dengan pengecam uniknya. Apabila menyimpan data dalam cache, kami menyimpan nilai bersirinya dalam cincangan Redis menggunakan kaedah "hset" dalam Redis.

Apabila mendapatkan semula data daripada cache, kami menggunakan kaedah "hget" untuk mendapatkan semula nilai cache. Jika nilai tidak wujud, mengembalikan palsu. Jika tidak, kami menyahsiri nilai cache dan mengembalikannya.

  1. Ringkasan

Daripada artikel ini, anda memahami kelebihan dan senario aplikasi Redis. Kami juga membincangkan cara menggunakan Redis dengan PHP dan melihat cara berbeza untuk melaksanakan caching Redis.

Menggunakan cache Redis boleh meningkatkan prestasi aplikasi web anda dengan ketara. Data disimpan dalam ingatan supaya ia boleh diakses dengan lebih cepat. Sudah tentu, Redis bukanlah penyelesaian caching yang sesuai untuk semua aplikasi web, tetapi apabila sejumlah besar data perlu diproses dan respons pantas diperlukan, caching Redis ialah penyelesaian yang berkuasa.

Atas ialah kandungan terperinci Gunakan PHP dan Redis untuk melaksanakan caching dan meningkatkan prestasi tapak web. 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