Rumah >rangka kerja php >Laravel >redis penggunaan laravel

redis penggunaan laravel

王林
王林asal
2023-05-21 09:01:072475semak imbas

Laravel ialah rangka kerja pembangunan PHP yang popular Ia memenangi gelaran rangka kerja PHP paling popular dalam "Tinjauan Pembangun Laravel 2020". Antaranya, fungsi Redis Laravel digunakan secara meluas, yang boleh membantu pembangun mencapai pemprosesan caching dan baris gilir yang cekap.

Redis ialah sistem storan data dalam memori sumber terbuka, iaitu pangkalan data NoSQL yang serupa dengan pasangan nilai kunci. Ciri Redis ialah ia boleh menyokong pelbagai struktur data, seperti rentetan, senarai, cincang, set, set tersusun, dll. Ia juga mempunyai kelebihan prestasi tinggi, ketersediaan tinggi, kebolehskalaan dan kemudahan penggunaan, jadi ia sangat popular dalam pembangunan telah digunakan secara meluas. Seterusnya, kami akan memperkenalkan penggunaan Redis dalam Laravel secara terperinci.

Konfigurasi Redis

Sebelum menggunakan Redis dalam Laravel, anda mesti mengkonfigurasinya terlebih dahulu. Buka fail .env dan cari item konfigurasi berikut:

CACHE_DRIVER=file
SESSION_DRIVER=file
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

Antaranya, CACHE_DRIVER mewakili pemacu cache, dan nilai lalai ialah fail Di sini kita perlu menukarnya kepada Redis, iaitu:

CACHE_DRIVER=redis

SESSION_DRIVER Begitu juga. REDIS_HOST mewakili alamat perkhidmatan Redis, yang lalai kepada 127.0.0.1 mesin tempatan REDIS_PASSWORD mewakili kata laluan Redis. REDIS_PORT menunjukkan port yang didengari oleh perkhidmatan Redis, dan lalainya ialah 6379.

Untuk menguji penggunaan, Redis yang kami gunakan di sini dipasang pada mesin tempatan tanpa menetapkan kata laluan. Jika anda menggunakan Redis jauh, anda perlu mengubah suai REDIS_HOST dan REDIS_PORT, dan juga menetapkan REDIS_PASSWORD.

Caching dengan Redis

Caching dengan Redis dalam Laravel adalah sangat mudah. Kita hanya perlu menggunakan kelas Cache untuk mengakses cache, dan kemudian tetapkan pemacunya kepada Redis, supaya Redis boleh digunakan untuk caching.

Cache nilai

Terdapat banyak cara untuk cache nilai menggunakan Redis Di sini kami mula-mula memperkenalkan caching nilai.

use IlluminateSupportFacadesCache;

Cache::store('redis')->put('key', 'value', $seconds);

Kod di atas mengakses cache Redis melalui Cache::store('redis'), dan kemudian cache pasangan nilai kunci menggunakan kaedah put. Antaranya, $seconds mewakili tempoh sah cache dalam saat. Apabila nilai $seconds adalah batal, cache tidak akan luput.

Dapatkan nilai

Tujuan caching nilai adalah untuk mendapatkan nilai secara langsung pada masa hadapan. Kita boleh menggunakan kelas Cache Laravel untuk mendapatkan nilai ini:

use IlluminateSupportFacadesCache;

$value = Cache::store('redis')->get('key');

Kod di atas mengakses cache Redis melalui Cache::store('redis'), dan kaedah get memperoleh nilai yang sepadan dengan kunci.

Padam nilai

Apabila kita perlu memadam cache, kita boleh menggunakan kod berikut:

use IlluminateSupportFacadesCache;

Cache::store('redis')->forget('key');

Kod di atas diakses melalui Cache::store('redis ') Redis cache, kaedah lupa memadam cache yang sepadan.

Untuk menentukan sama ada cache wujud

Untuk menentukan sama ada cache wujud, kita boleh menggunakan kod berikut:

use IlluminateSupportFacadesCache;

if (Cache::store('redis')->has('key')) {
    //
}

Kod di atas mengakses Redis melalui Cache::store( 'redis') Dalam cache, kaedah has menentukan sama ada nilai yang sepadan dengan kunci wujud.

Gunakan Redis untuk pemprosesan baris gilir

Untuk menggunakan Redis untuk pemprosesan baris gilir dalam Laravel, anda perlu memperkenalkan penyedia perkhidmatan baris gilir terlebih dahulu. Buka fail config/app.php, cari tatasusunan penyedia dan tambah kod berikut:

'providers' => [
    // ...
    IlluminateQueueQueueServiceProvider::class,
    IlluminateRedisRedisServiceProvider::class,
    // ...
],

Seterusnya, kita perlu mengkonfigurasi sambungan baris gilir. Buka fail config/queue.php dan ubah suai item konfigurasi berikut:

'connections' => [
    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => 'default',
        'retry_after' => 90,
        'block_for' => null,
    ],
],

Antaranya, pemandu bermaksud menggunakan sambungan pemacu Redis bermaksud sambungan cache yang digunakan bermaksud nama gilir yang digunakan; kegagalan berlaku, dalam saat block_for mewakili masa menyekat apabila memperoleh tugas, dalam saat.

Tolak tugas ke baris gilir

Seterusnya, kita boleh menggunakan kod berikut untuk menolak tugasan ke baris gilir:

use IlluminateSupportFacadesQueue;

Queue::push(new SendEmailJob($user));

Kod di atas menggunakan Queue::push kaedah untuk menolak SendEmailJob ke baris gilir lalai. Antaranya, SendEmailJob ialah kelas tugas tersuai yang boleh melaksanakan logik yang lebih kompleks.

Laksanakan tugas giliran

Selepas menolak tugas ke baris gilir, kita perlu menggunakan arahan berikut untuk melaksanakan tugas:

php artisan queue:work

Arahan di atas akan memulakan proses untuk melaksanakan tugas giliran. Jika pelayan anda mempunyai berbilang teras CPU, anda boleh meningkatkan kelajuan pemprosesan tugas dengan menambah pilihan --daemon untuk memulakan berbilang proses.

Ringkasan

Fungsi Redis Laravel sangat berkuasa, dan pemprosesan caching dan baris gilir yang sangat baik boleh dicapai melalui kerjasama dengan Redis. Apabila berurusan dengan konkurensi tinggi dan perniagaan yang kompleks, menggunakan cache dan baris gilir Redis boleh meningkatkan prestasi dan kestabilan sistem dengan ketara. Artikel ini memperkenalkan secara ringkas penggunaan Redis dalam Laravel dan berharap dapat membantu kerja pembangunan anda.

Atas ialah kandungan terperinci redis penggunaan 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