Rumah  >  Artikel  >  rangka kerja php  >  Bincangkan cara mengemas kini cache dalam Laravel

Bincangkan cara mengemas kini cache dalam Laravel

PHPz
PHPzasal
2023-04-11 15:07:38951semak imbas

Laravel ialah rangka kerja PHP yang sangat popular yang menggunakan caching untuk meningkatkan prestasi aplikasi dan responsif. Caching boleh mengurangkan beban pada pangkalan data dan sumber luaran lain dengan berkesan, dengan itu meningkatkan kelajuan tindak balas aplikasi. Walau bagaimanapun, apabila kami mengubah suai data, cache perlu dikemas kini, jika tidak, kami tidak boleh mendapatkan data terkini. Dalam artikel ini, kita akan membincangkan cara mengemas kini cache dalam Laravel.

  1. Fahami caching Laravel

Dalam Laravel, kita boleh menggunakan pelbagai kaedah caching, seperti caching fail, caching pangkalan data, caching Redis, dsb. Kaedah caching ini semuanya mempunyai ciri dan fungsi yang berbeza, tetapi semuanya mengikut prinsip caching asas yang sama. Dalam Laravel, kita boleh menggunakan kelas fasad Cache untuk mengakses cache.

Dalam Laravel, caching biasanya terdiri daripada dua langkah: baca caching dan tulis caching. Apabila kita membaca dari cache, Laravel mencari data dalam cache. Jika data wujud, data dalam cache dikembalikan terus, jika tidak, data diperoleh daripada sumber data dan disimpan dalam cache. Apabila kami menulis ke cache, Laravel menyimpan data ke dalam cache. Jika data sudah wujud dalam cache, data asal akan ditimpa. Jika tidak, Laravel akan mencipta rekod cache baharu.

  1. Cara mengemas kini cache

Dalam Laravel, kita boleh menggunakan kaedah put() yang disediakan oleh kelas fasad Cache untuk menulis data cache, cuma letakkan data sebagai kedua Hanya hantar parameter ke kaedah put(). Jika kami perlu mengemas kini data cache, kami boleh menggunakan kaedah put() untuk menulis ganti data cache asal untuk memastikan data dalam cache ialah data terkini.

Berikut ialah contoh kod:

$user = User::find(1);
Cache::put('user:1', $user, 60);

Kod di atas akan cache objek $user ke dalam cache dengan kekunci 'user:1' dan menetapkan masa cache kepada 60 saat. Jika kita perlu mengemas kini data cache, kita boleh menggunakan kaedah put() sekali lagi untuk menulis ganti data cache sebelumnya.

$user->name = 'New Name';
Cache::put('user:1', $user, 60);

Kod di atas akan mengemas kini atribut nama objek $user dan menulis objek $user yang dikemas kini ke dalam cache untuk menulis ganti data cache sebelumnya. Pada ketika ini, kita boleh mendapatkan data objek $user terkini daripada cache.

  1. Kemas kini cache automatik

Dalam aplikasi praktikal, kami mungkin perlu mengemas kini data cache yang sepadan secara automatik apabila data dikemas kini dalam pangkalan data. Laravel menyediakan cara mudah untuk mengurus cache dalam model pangkalan data menggunakan tag cache.

Teg cache ialah kaedah menggabungkan berbilang data cache, yang boleh digunakan untuk cache berbilang data berkaitan pada masa yang sama dalam model data. Apabila kami mengemas kini data model, kami boleh menggunakan teg cache untuk mengemas kini semua data cache yang berkaitan dengan model tersebut.

Berikut ialah contoh kod:

class User extends Model
{
    protected $fillable = ['name', 'email'];
    protected $cacheKey = 'users';

    public function getByID($id)
    {
        $cacheKey = $this->cacheKey . '.' . $id;
        return Cache::tags([$this->cacheKey])->remember($cacheKey, 60, function() use($id) {
            return User::find($id);
        });
    }

    protected static function boot()
    {
        parent::boot();

        static::saved(function($user) {
            Cache::tags($user->cacheKey)->flush();
        });

        static::deleted(function($user) {
            Cache::tags($user->cacheKey)->flush();
        });
    }
}

Kod di atas menggunakan teg cache untuk mengurus data cache untuk model pengguna. Ia mentakrifkan atribut $cacheKey, yang digunakan untuk menetapkan awalan teg cache. Ia juga mengatasi kaedah getByID(), yang menggunakan teg cache untuk mendapatkan data pengguna bagi ID yang ditentukan. Apabila data pengguna dibuat, dikemas kini atau dipadamkan, Laravel akan mengosongkan data cache pengguna secara automatik untuk memastikan data cache disegerakkan dengan data pangkalan data.

Ringkasan

Mengemas kini cache dalam Laravel ialah tugas yang sangat penting yang boleh meningkatkan prestasi dan responsif aplikasi kami. Kita boleh menggunakan kaedah put() yang disediakan oleh kelas fasad Cache untuk menulis atau menulis ganti data cache. Apabila data pangkalan data dikemas kini, kami boleh menggunakan tag cache untuk mengemas kini data cache yang sepadan secara automatik. Saya harap artikel ini dapat memberi anda sedikit bantuan dan memberi anda pemahaman yang lebih baik tentang pengurusan cache dalam Laravel.

Atas ialah kandungan terperinci Bincangkan cara mengemas kini cache dalam Laravel. 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