Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Memahami caching Laravel:Fasad cache dan Redis

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 .

  1. Karena redis menyimpan data di memori, dan sistem file menyimpan di disk. Membaca data dari memori lebih cepat daripada disk.

  2. 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].

  3. 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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Berikan file ke Pekerjaan Aktif / pekerjaan latar belakang

  2. Simpan hash bersarang di redis melalui aplikasi node.js

  3. Redis Pub/Sub ServiceStack, membatalkan utas

  4. Cara mendapatkan beberapa nilai daftar dalam satu panggilan di RedisTemplate of Jedis Client

  5. Prototipe objek Node.JS hanya dapat berupa Objek atau nol dengan Redis