PHP Academy · Pelajaran

Memcached untuk Caching Sesi dan Objek

Gunakan Memcached sebagai stor teragih dalam memori untuk objek PHP.

Pelajaran 3 daripada 413 langkah

Memcached untuk Caching Sesi dan Objek ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah Memcached?

Memcached ialah stor pasangan kunci-nilai teragih dalam memori berprestasi tinggi. Ia digunakan secara meluas untuk menyimpan hasil kueri pangkalan data dan data sesi dalam aplikasi PHP.

Pemasangan

Pasang pelayan Memcached dan sambungan PHP.

# Ubuntu/Debian:
$ apt install memcached php-memcached
$ service memcached start

# Verify:
$ php -m | grep memcached

Menyambung ke Memcached

Cipta tika Memcached dan tambahkan satu atau lebih pelayan.

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

// Multiple servers (distributed caching):
$mc->addServers([
    ["192.168.1.10", 11211],
    ["192.168.1.11", 11211],
]);

Operasi Cache Asas

Tetapkan, dapatkan, padam dan gantikan entri cache.

<?php
// Set with TTL:
$mc->set("product:1", $productData, 600); // 10 min

// Get:
$product = $mc->get("product:1");
if ($mc->getResultCode() === Memcached::RES_NOTFOUND) {
    $product = fetchFromDB(1);
    $mc->set("product:1", $product, 600);
}

// Delete:
$mc->delete("product:1");

Penyimpanan Sesi dengan Memcached

Simpan sesi PHP dalam Memcached untuk capaian pantas dan dikongsi merentasi berbilang pelayan web.

# php.ini:
session.save_handler = memcached
session.save_path    = "127.0.0.1:11211"

Integrasi Memcached dengan Laravel

Konfigurasikan dan gunakan Memcached sebagai pemacu cache Laravel.

# .env
CACHE_DRIVER=memcached
MEMCACHED_HOST=127.0.0.1

// Usage is identical to Redis via Cache facade:
Cache::put("key", $value, 300);
$value = Cache::get("key");

Memcached berbanding Redis

Memcached: lebih ringkas, berbilang bebenang dan sepenuhnya dalam memori (tiada penyimpanan berterusan). Redis: jenis data lebih pelbagai, penyimpanan berterusan pilihan (AOF/RDB), penerbitan/langganan dan kluster. Untuk caching semata-mata, kedua-duanya memberikan prestasi yang serupa. Redis biasanya lebih disukai untuk projek baharu.

Caching Teragih

Memcached mengagihkan kunci secara terbina dalam merentasi berbilang pelayan menggunakan pencincangan konsisten. Ini membolehkan penskalaan mendatar apabila trafik meningkat.

CAS Atomik (Bandingkan dan Tukar)

Memcached menyokong operasi CAS untuk mengemas kini nilai dengan selamat hanya jika tiada klien lain mengubahnya sejak kali terakhir anda membacanya.

<?php
$mc->get("counter", null, $cas);
$mc->cas($cas, "counter", $newValue, 60);

Had TTL

TTL Memcached dihadkan kepada maksimum 30 hari. Nilai yang lebih besar daripada kira-kira 1 MB akan ditolak. Pastikan nilai cache kecil dan disiri dengan cekap.

Pemantauan

Gunakan memcached-tool 127.0.0.1:11211 stats untuk menyemak kadar capaian, penggunaan memori dan pengusiran. Kadar capaian yang rendah atau jumlah pengusiran yang tinggi menunjukkan cache terlalu kecil.

Ringkasan

Memcached cemerlang dalam caching objek dan sesi teragih yang ringkas. Dalam Laravel, tetapkan CACHE_DRIVER=memcached. Untuk penggunaan produksi dengan ciri yang lebih pelbagai, pilih Redis.

Semakan Ringkas

Apakah satu perbezaan utama antara Memcached dengan Redis?

Percuma untuk bermula

Pelajari PHP dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
49
Pelajaran
195

Soalan Lazim

Adakah pelajaran “Memcached untuk Caching Sesi dan Objek” percuma?

Ya — teks penuh “Memcached untuk Caching Sesi dan Objek” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Memcached untuk Caching Sesi dan Objek”?

Gunakan Memcached sebagai stor teragih dalam memori untuk objek PHP. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Memcached untuk Caching Sesi dan Objek” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Kepentingan Caching dalam PHP
  2. Redis sebagai Bahagian Belakang Cache PHP
  3. Memcached untuk Caching Sesi dan Objek
  4. Corak Pembatalan Cache
← Kembali ke PHP Academy