Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk menggunakan Memcache untuk meningkatkan kecekapan capaian data dalam pembangunan PHP?

Bagaimana untuk menggunakan Memcache untuk meningkatkan kecekapan capaian data dalam pembangunan PHP?

WBOY
Lepaskan: 2023-11-07 16:00:02
asal
1235 orang telah melayarinya

Bagaimana untuk menggunakan Memcache untuk meningkatkan kecekapan capaian data dalam pembangunan PHP?

Memcache ialah sistem caching berprestasi tinggi yang boleh menyimpan data dalam ingatan dan meningkatkan kelajuan capaian data. Dalam pembangunan PHP, kita boleh menggunakan Memcache untuk cache beberapa data yang biasa digunakan, seperti hasil pertanyaan pangkalan data, respons permintaan API, dsb. Artikel ini akan memperkenalkan secara terperinci cara menggunakan Memcache untuk meningkatkan kecekapan capaian data dalam pembangunan PHP, dan menyediakan contoh kod khusus.

1. Pasang dan konfigurasikan Memcache

Sebelum anda mula menggunakan Memcache, anda perlu memasang dan mengkonfigurasi sambungan Memcache. Berikut ialah kaedah pemasangan dan konfigurasi di bawah sistem Ubuntu.

  1. Pasang sambungan Memcache

Laksanakan arahan berikut dalam terminal:

sudo apt-get install php-memcached
Salin selepas log masuk

Selepas pemasangan berjaya, gunakan arahan berikut untuk menyemak sama ada pemasangan berjaya:

php -m | grep memcached
Salin selepas log masuk

Jika pemasangan berjaya, memcached akan dikeluarkan .

  1. Konfigurasikan pelayan Memcache

Pelayan Memcache boleh dibina secara tempatan atau jauh Berikut ialah cara membina pelayan Memcache secara tempatan.

Laksanakan arahan berikut dalam terminal untuk memasang pelayan Memcache:

sudo apt-get install memcached
Salin selepas log masuk

Selepas pemasangan berjaya, anda boleh menggunakan arahan berikut untuk memulakan pelayan Memcache:

sudo service memcached start
Salin selepas log masuk

Secara lalai, port yang didengari oleh pelayan Memcache ialah 11211. Anda boleh menggunakan arahan berikut untuk menyemak sama ada permulaan berjaya:

telnet localhost 11211
Salin selepas log masuk

Jika sambungan berjaya, maklumat berikut akan dikeluarkan:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Salin selepas log masuk

2 Gunakan Memcache untuk cache data

Dalam pembangunan PHP, Memcache boleh digunakan untuk cache beberapa data yang biasa digunakan, seperti hasil pertanyaan pangkalan data, respons permintaan API, dsb. Berikut adalah langkah-langkah untuk cache data menggunakan Memcache.

  1. Menyambung ke pelayan Memcache

Untuk menyambung ke pelayan Memcache dalam PHP anda boleh menggunakan kod berikut:

<?php
$memcache = new Memcached();
$memcache->addServer("localhost", 11211);
?>
Salin selepas log masuk
  1. Data cache

Untuk cache data dalam PHP anda boleh menggunakan kod berikut:

<?php
$memcache = new Memcached();
$memcache->addServer("localhost", 11211);
$data = getDataFromDatabase();  // 从数据库中获取数据
$memcache->set("data_key", $data);
?>
Salin selepas log masuk

Data cache
  1. Untuk cache data dalam PHP anda boleh menggunakan kod berikut: Dalam kod di atas, fungsi getDataFromDatabase() Merupakan fungsi tersuai yang mendapat data daripada pangkalan data. Kaedah $memcache->set() boleh cache data ke dalam pelayan Memcache Parameter pertama ialah kunci cache, dan parameter kedua ialah nilai cache.

Baca data cache

    Untuk membaca data cache daripada pelayan Memcache dalam PHP, anda boleh menggunakan kod berikut:
  1. <?php
    $memcache = new Memcached();
    $memcache->addServer("localhost", 11211);
    $data = $memcache->get("data_key");
    if($data === false){
        // 缓存中不存在该数据
        $data = getDataFromDatabase();  // 从数据库中获取数据
        $memcache->set("data_key", $data);
    }
    ?>
    Salin selepas log masuk
  2. Dalam kod di atas, kaedah $memcache->get() boleh membaca cache daripada Data pelayan Memcache, parameter pertama ialah kunci cache. Jika data tidak wujud dalam cache, data tersebut perlu diperolehi daripada pangkalan data dan disimpan dalam pelayan Memcache.

Padam data cache

Untuk memadam data cache dalam Memcache dalam PHP, anda boleh menggunakan kod berikut:

<?php
$memcache = new Memcached();
$memcache->addServer("localhost", 11211);
$memcache->delete("data_key");
?>
Salin selepas log masuk

Dalam kod di atas, kaedah $memcache->delete() boleh memadam data cache dalam Pelayan Memcache Pertama Parameter pertama ialah kunci cache.

    3. Penggunaan memori dan tetapan masa cache
  1. Apabila menggunakan Memcache untuk cache data, anda perlu mempertimbangkan penggunaan memori dan tetapan masa cache Berikut adalah contoh kod yang berkaitan.

Penggunaan memori

    Dalam PHP, anda boleh menggunakan kod berikut untuk mendapatkan statistik pelayan Memcache:
  1. <?php
    $memcache = new Memcached();
    $memcache->addServer("localhost", 11211);
    $stats = $memcache->getStats();
    echo "当前内存使用: " . round($stats['bytes'] / 1024 / 1024, 2) . " MB";
    ?>
    Salin selepas log masuk
  2. Dalam kod di atas, kaedah $memcache->getStats() boleh mendapatkan statistik bagi pelayan Memcache. $stats['bytes'] mewakili bilangan bait yang sedang digunakan oleh memori, yang boleh ditukar kepada output unit MB.

Tetapan masa cache

Dalam PHP, anda boleh menggunakan kod berikut untuk menetapkan masa cache Memcache:

<?php
$memcache = new Memcached();
$memcache->addServer("localhost", 11211);
$data = getDataFromAPI();     // 从API中获取数据
$memcache->set("api_data_key", $data, 60);  // 缓存时间设置为60秒
?>
Salin selepas log masuk

Dalam kod di atas, parameter ketiga kaedah $memcache->set() mewakili cache masa, dalam beberapa saat. Selepas masa cache tamat, data cache akan tamat tempoh secara automatik.

4. Contoh kod lengkap

Berikut ialah contoh kod lengkap yang menunjukkan cara menggunakan Memcache untuk cache hasil pertanyaan pangkalan data dan respons permintaan API, dan tetapkan masa cache:

<?php
$memcache = new Memcached();
$memcache->addServer("localhost", 11211);

// 缓存数据库查询结果
$user_data = $memcache->get("user_data");
if($user_data === false){
    $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "password");
    $stmt = $pdo->prepare("SELECT * FROM users");
    $stmt->execute();
    $user_data = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $memcache->set("user_data", $user_data, 3600);  // 缓存时间设置为1小时
}

// 缓存API请求响应
$api_data = $memcache->get("api_data");
if($api_data === false){
    $api_url = "https://api.example.com/data";
    $api_data = file_get_contents($api_url);
    $memcache->set("api_data", $api_data, 300);  // 缓存时间设置为5分钟
}

// 输出缓存数据
echo "从缓存中获取的用户数据:";
print_r($user_data);

echo "从缓存中获取的API数据:";
print_r(json_decode($api_data, true));
?>
Salin selepas log masuk

Dalam kod di atas, masa cache bagi data pengguna ditetapkan kepada 1 jam, dan masa cache data API ditetapkan kepada 5 minit. Jika data cache wujud, data akan diperolehi daripada cache dan output jika data cache tidak wujud, data akan diperolehi daripada pangkalan data MySQL atau API dan disimpan dalam pelayan Memcache.

🎜Ringkasan🎜🎜Artikel ini memperkenalkan cara menggunakan Memcache untuk meningkatkan kecekapan capaian data dalam pembangunan PHP, dan menyediakan contoh kod khusus. Menggunakan Memcache boleh meningkatkan kelajuan akses data dan prestasi sistem dengan ketara, terutamanya untuk beberapa data yang biasa digunakan, seperti hasil pertanyaan pangkalan data, respons permintaan API, dsb. Pada masa yang sama, anda perlu memberi perhatian kepada tetapan penggunaan memori dan masa cache untuk mengelakkan ranap sistem atau data yang tidak tepat. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Memcache untuk meningkatkan kecekapan capaian data dalam pembangunan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan