Umum:
Mereka semua cache .
Semuanya digunakan untuk mengurangi biaya waktu .
Berbeda:
Konfigurasi Dan Rute:
Itu milik aplikasi . Kami menyebutnya Cache Aplikasi .
php artisan config:cache
php artisan route:cache
Kedua perintah ini adalah cache rute dan konfigurasi.
JALAN:
Mereka selalu disimpan di
bootstrap/cache/
Berlari
php artisan config:clear
php artisan route:clear
Hanya hapus direktori dan file di bootstrap/cache/
.
Mereka statis . Jadi mereka hanya berubah ketika Anda mengubahnya.
Manfaat
Jika Anda mengubahnya, Anda perlu clear
dan cache
secara manual.
Setelah Anda mengatur rute dan konfigurasi ini.
Laravel tidak perlu membaca konfigurasi dan rute dari file lagi yang membutuhkan biaya waktu IO.
Cache Sistem File Dan Cache Redis:
Cache sistem file dan cache Redis juga merupakan cache.
Namun, mereka menggunakan driver yang berbeda untuk menyimpan data, berarti tempat Anda menyimpan data dalam cache .
Filesystem PATH:Jika Anda menggunakan driver filesystem. mereka disimpan di
storage/framework/cache/
Reids PATH:Data disimpan di
redis
menurut nilai kunci.
Kapan Anda menggunakannya?
Ketika Anda menemukan bahwa ada banyak permintaan untuk kode ini untuk mendapatkan data. Dan data ini tidak berubah begitu cepat.
Anda dapat menggunakan cache untuk menyimpannya, dan kemudian, lain kali permintaan lain ke api ini. hanya mengambil data dari cache. seperti di bawah ini:
$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});
Permintaan pertama mendapatkan data posting dari database, dan kemudian menyimpan data ini dalam cache (Reids atau Filesystem) kedaluwarsa setelah 30 detik.
Permintaan selanjutnya dapatkan data posting hanya melalui cache. Mereka tidak perlu mencari di database lagi.
Dan yang ini:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
Berarti ketika orang meminta localhost:8000/
, jumlah kunjungan pengguna meningkat di redis
(tidak perlu disimpan dalam database, membutuhkan waktu lebih lama), lain kali, ketika permintaan untuk mencari jumlah kunjungan, dapat ditemukan di redis
sangat cepat.
PS:Disini menggunakan Redis Facade, kemudian data disimpan di
redis
.Jika Anda menggunakan redis sebagai driver cache,
Cache::remember()
akan menyimpan data dalam redis juga.Namun, menggunakan Redis Facade, Anda dapat menggunakan banyak metode redis.
Mana yang lebih baik?
Saya pikir redis
lebih baik dari filesystem
.
-
Karena
redis
menyimpan data di memori, dan sistem file menyimpan di disk. Membaca data dari memori lebih cepat daripada disk. -
Operasikan data di Redis lebih mudah daripada Sistem File. Misalnya dukungan Redis menghapus semua cache untuk tag tertentu, tetapi sistem file tidak bisa[Karena sistem file menyimpan data cache dengan nama kunci terenkripsi].
-
Untuk didistribusikan server, cache sistem file adalah ide yang buruk. Rasio hit cache yang lebih rendah.
Sejujurnya, ada driver lain yang bisa dipilih, seperti mongodb
.
Omong-omong, bahasa Inggris saya tidak terlalu bagus, harap Anda mengerti.