Untuk ERP yang berjalan di atas WordPress dan WooCommerce, latency dan throughput menjadi faktor penentu. Arsitektur object cache tiga lapis memberikan kombinasi kecepatan request-level, persistensi proses, dan skala jaringan:
- L0 (In‑Request / Array Cache): cache super-cepat di memori PHP (array) berlaku hanya selama satu request. Nyaris tanpa overhead.
- L1 (APCu, per-proses): cache persisten di level proses PHP-FPM; ideal untuk hot keys dan mengurangi perjalanan ke jaringan.
- L2 (Redis/Memcached, jaringan): cache terdistribusi, konsisten lintas worker/server—cocok untuk beban ERP dan operasi WooCommerce (produk, stok, harga dinamis).
Hasilnya: hit ratio tinggi di L0/L1, dengan L2 sebagai source of truth cache yang dapat dibagi lintas node.
Logika Inti object-cache.php
Alur Get (hierarki baca & promosi):
- Cek L0: jika ada → hit cepat.
- Jika miss, cek L1 (APCu): jika ada → isi L0, kembalikan.
- Jika miss, cek L2 (Redis/Memcached): jika ada → isi L1 & L0 (promosi), kembalikan.
- Jika tetap miss → bangun data dari DB, lalu tulis berjenjang (L2 → L1 → L0).
Alur Set (tulis-menembus / write-through):
- Tulis ke L2 (persisten jaringan), lalu L1 (APCu), terakhir L0 (array) agar subsequent requests langsung hit.
Invalidasi:
delete()menghapus di semua lapis.- Versi berbasis group (versioned keys) untuk invalidasi massal tanpa full flush.
Proteksi Stampede:
- Locking ringan (mis.
apcu_addatauSET NXdi Redis) + TTL jitter untuk mencegah thundering herd.
Penentuan Key:
blog_prefix + group + version + keydenganWP_CACHE_KEY_SALTbila tersedia, menjaga isolasi multisite & lingkungan.
Struktur Minimalis object-cache.php (sketsa)
Catatan: gunakan serialisasi yang efisien (
igbinarybila tersedia) dan kompresi opsional untuk objek besar.
Fitur yang Disarankan untuk Drop‑in
- Mode Konsistensi: Strict (tulis sinkron ke semua lapis) vs Loose (toleransi eventual di L1).
- TTL & Jitter: TTL dinamis berdasarkan group + jitter 5–10% untuk meratakan puncak invalidasi.
- Non‑Persistent Groups: daftar group yang hanya disimpan di L0/L1 (mis. session singkat).
- Warmup/Priming: perintah WP‑CLI (
wp cache prime) untuk memanaskan kunci kritis ERP/Woo. - Metrics & Debugging: hit/miss per layer, rata‑rata latency, kunci teratas; panel admin + hooks kustom.
- Graceful Degradation: jika Redis/Memcached down, jatuh ke APCu/L0 tanpa memutus trafik.
- Multisite‑Aware: key prefix per situs + global groups lintas jaringan.
- Health Checks: ping Redis/Memcached, self-healing reconnect dan backoff.
- Compatibility Switches: dukungan
WP_REDIS_*,MEMCACHED_SERVERS,WP_CACHE_KEY_SALT. - Stampede Locks: kunci short‑lived per kunci saat regenerasi.
Dengan rancangan ini, ERP berbasis WordPress + WooCommerce memperoleh latency rendah, throughput tinggi, serta resilien terhadap lonjakan beban—tanpa mengorbankan konsistensi data yang krusial bagi transaksi.



One Reply to “Object Cache Tiga Lapis untuk Backbone Performa ERP di WordPress + WooCommerce”