Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Zrozumienie pamięci podręcznej Laravel:Fasada pamięci podręcznej i Redis

Częste:

wszystkie pamięci podręczne .

Wszystkie są przyzwyczajone do zmniejszenia kosztów czasu .

Inne:

Konfiguracje i trasy:

Należy do aplikacji . Nazywamy to pamięcią podręczną aplikacji .

php artisan config:cache
php artisan route:cache

Te dwa polecenia buforują trasy i konfiguracje.

ŚCIEŻKA:

Są zawsze przechowywane w bootstrap/cache/

Bieganie

php artisan config:clear
php artisan route:clear

Wyczyść tylko katalogi i pliki w bootstrap/cache/ .

statyczne . Zmieniają się więc tylko wtedy, gdy je zmieniasz.

Korzyści

Jeśli je zmienisz, musisz clear i cache je ręcznie.

Po przeszukaniu tych tras i konfiguracji.

Laravel nie musi ponownie odczytywać konfiguracji i tras z pliku co kosztowało czas IO.

Pamięć podręczna systemu plików i pamięć podręczna Redis:

Pamięć podręczna systemu plików i pamięć podręczna Redis również są pamięcią podręczną.

Jednak używają innego sterownika do przechowywania danych, czyli gdzie przechowujesz dane z pamięci podręcznej .

ŚCIEŻKA systemu plików:Jeśli używasz sterownika systemu plików. są przechowywane w storage/framework/cache/

Reids PATH:Przechowywanie danych w redis według pary klucz-wartość.

Kiedy ich używasz?

Kiedy okazało się, że istnieje wiele żądań do tego kodu w celu uzyskania danych. A te dane nie zmieniają się tak szybko.

Możesz użyć pamięci podręcznej do ich przechowywania, a następnie następnym razem, gdy kolejne żądanie do tego api.it po prostu pobierz dane z pamięci podręcznej.jak poniżej:

$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});

Pierwsze żądanie pobiera dane postów z bazy danych, a następnie przechowuje te dane w pamięci podręcznej (Reids lub Filesystem) wygasło po 30 sekundach.

Następne żądanie pobiera dane postów tylko przez pamięć podręczną. Nie muszą ponownie przeszukiwać baz danych.

A ten:

use Illuminate\Support\Facades\Redis; 

Route::get('/', function () { 
     $visits = Redis::incr('visits'); 
     return $visits; 
});

Oznacza, gdy ludzie proszą o localhost:8000/ , liczba odwiedzin użytkowników wzrasta w redis (nie trzeba przechowywać w bazie danych, kosztuje to więcej czasu), następnym razem, gdy żądanie przeszukania liczby odwiedzin, można je znaleźć w redis bardzo szybko.

PS:Tutaj użyj Redis Facade, a następnie dane są przechowywane w redis .

Jeśli używasz redis jako sterownika pamięci podręcznej, Cache::remember() będzie przechowywać dane również w redis.

Jednak korzystając z Redis Facade, możesz korzystać z wielu metod redis.

Co jest lepsze?

Myślę, że redis jest lepszy niż filesystem .

  1. Ponieważ redis przechowuj dane w pamięci, a system plików przechowuj na dysku.Odczyt danych z pamięci jest szybszy niż dysk.

  2. Obsługa dane w Redis są łatwiejsze niż system plików. Na przykład Redis obsługuje wyczyszczenie całej pamięci podręcznej dla określonego tagu, ale system plików nie może[Ponieważ system plików przechowuje dane pamięci podręcznej według nazwy zaszyfrowanego klucza].

  3. Dla dystrybuowanych serwer, pamięć podręczna systemu plików to zły pomysł. Niższy współczynnik trafień w pamięci podręcznej.

Szczerze mówiąc, można wybrać inne sterowniki, takie jak mongodb .

Nawiasem mówiąc, mój angielski nie jest zbyt dobry, mam nadzieję, że zrozumiesz.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wprowadzenie do struktur danych Redis:posortowane zestawy

  2. Jak skonfigurować klaster redis przy użyciu spring-data-redis 1.7.0.M1?

  3. Tworzenie modułu Redis C++ - nie eksportuje symbolu RedisModule_OnLoad()

  4. Jak korzystać ze SKANOWANIA z opcją DOPASUJ w Predis?

  5. Działanie dekoratora @cache_page() w django-redis-cache