Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan Laravel untuk melaksanakan fungsi caching data

Cara menggunakan Laravel untuk melaksanakan fungsi caching data

王林
王林asal
2023-11-02 08:24:241106semak imbas

Cara menggunakan Laravel untuk melaksanakan fungsi caching data

Dengan pembangunan berterusan aplikasi web, caching data telah menjadi salah satu cara penting untuk meningkatkan prestasi aplikasi. Sebagai rangka kerja PHP yang popular, Laravel juga menyediakan beberapa fungsi caching data yang mudah. Dalam artikel ini, kita akan melihat cara melaksanakan caching data dalam Laravel dan memberikan beberapa contoh kod konkrit.

Kelebihan menggunakan caching

Sebelum kita mula menerangkan cara melaksanakan caching data dalam Laravel, mari kita fahami dahulu mengapa kita memerlukan caching.

Apabila aplikasi anda perlu kerap menanyakan pangkalan data atau memanggil API untuk mendapatkan data, operasi ini mengambil masa dan sumber yang berharga. Dan apabila anda menggunakan cache untuk menyimpan data ini, aplikasi boleh mengambil data daripada cache tanpa perlu mengambil data daripada pangkalan data atau API setiap kali. Ini boleh meningkatkan prestasi aplikasi dan mengurangkan penggunaan sumber.

Laksanakan caching

Dalam Laravel, kita boleh menggunakan fungsi caching untuk cache beberapa data atau serpihan halaman yang biasa digunakan.

Pertama, anda perlu mengesahkan bahawa pemacu cache seperti Redis telah dipasang. Untuk memasang Redis, anda boleh menggunakan arahan berikut:

composer require predis/predis

Selepas melengkapkan pemasangan, anda boleh mengkonfigurasi pemacu cache data anda. Buka fail config/cache.php dan anda akan menemui konfigurasi yang serupa dengan yang berikut:

'default' => env('CACHE_DRIVER', 'file'),

Anda boleh menukar pemacu cache kepada Redis dan sediakan sambungan cache di bawah:

'default' => env('CACHE_DRIVER', 'redis'),

'redis' => [
    'client' => 'predis',
    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DB', 0),
    ],
],

Sekarang anda telah menyelesaikan persediaan cache dan boleh Mula menggunakan ciri caching.

Caching data

Caching data boleh menjadi sangat mudah, Laravel menyediakan banyak fungsi untuk melaksanakan caching dengan mudah.

// 缓存一个键值对
Cache::put('key', 'value', 60);

// 缓存一个键值对,如果已经存在则不缓存
Cache::add('key', 'value', 60);

// 永久缓存一个键值对
Cache::forever('key', 'value');

// 从缓存中获取一个数据
$value = Cache::get('key');

// 从缓存中获取一个数据,如果不存在,则返回一个默认值
$value = Cache::get('key', 'default');

// 判断一个键是否存在缓存中
if (Cache::has('key')) {
    //
}

// 从缓存中删除一个键
Cache::forget('key');

// 从缓存中删除所有数据
Cache::flush();

Pandangan Cache

Ciri caching paparan Laravel boleh membantu kami menyimpan halaman web dalam 85% kes dan meningkatkan kelajuan tindak balas halaman web.

Untuk mendayakan caching paparan, cuma tambahkan yang berikut pada fail /routes/web.php:

Route::get('/', function () {
    $expiresAt = Carbon::now()->addMinutes(10);
    $response = response()->view('welcome')->withHeaders([
        'Cache-Control' => 'max-age=600, public',
        'Expires' => $expiresAt->toDateTimeString(),
    ]);
    return $response;
})->middleware(['cache.headers:10']);

Dalam kod di atas, kami telah menambahkan perisian tengah cache.headers pada laluan, yang menyediakan cache 10 minit.

Pertanyaan cache

Laravel juga membolehkan kami membuat cache pertanyaan untuk mengelakkan pertanyaan data yang sama berulang kali.

$users = Cache::remember('users', 60, function () {
    return DB::table('users')->get();
});

Kod di atas akan mendapat kunci bernama "pengguna" daripada cache. Jika kunci tidak wujud dalam cache, fungsi panggil balik dijalankan dan hasilnya disimpan dalam cache. Dalam contoh ini, keputusan akan disimpan dalam cache dalam masa 60 saat. Jika anda perlu cache pertanyaan selama-lamanya, gunakan kaedah Cache::rememberForever dan bukannya Cache::remember.

Dalam contoh ini kami mencache DB::table('users')->get() tetapi anda boleh menggunakan mana-mana kaedah pembina pertanyaan yang tersedia dalam Laravel.

Kosongkan cache

Apabila anda perlu mengosongkan cache, anda sentiasa boleh menggunakan kaedah Cache::flush. Walau bagaimanapun, jika anda hanya perlu memadam item cache tertentu, anda boleh menggunakan kaedah Cache::forget.

// 删除name键的缓存项
Cache::forget('name');

// 清除所有缓存项
Cache::flush();

Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan fungsi caching dalam Laravel dan menyediakan beberapa kod contoh konkrit. Dengan menggunakan caching, kami boleh meningkatkan prestasi aplikasi kami dan mengurangkan penggunaan sumber. Jika anda memerlukan fungsi caching semasa menggunakan Laravel, pertimbangkan untuk menggunakan kaedah yang disediakan dalam artikel ini.

Atas ialah kandungan terperinci Cara menggunakan Laravel untuk melaksanakan fungsi caching data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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