2017-08-22 1 views
0

J'ai des questions à propos de Redis cache et laravel. Par défaut, laravel utilise un fichier qui met en cache les vues dans un fichier et les charge à partir de ce cache.Laravel Redis Cache

Maintenant, voici la chose, j'ai commencé à utiliser ElastiCache avec Redis pour mon projet Laravel 5.4. Si je change le pilote à redis et qu'il commence à mettre en cache (ce que je peux dire par un temps de chargement) mais que cache-t-il réellement? Met-il automatiquement en cache et récupère mes vues? css? js? rien d'autre?

J'utilise aussi redis pour les sessions driver, qu'est-ce que ça me donne?

Est-ce que cela vaut aussi la peine de mettre en cache la base de données? J'avais l'intention de mettre en cache toute la base de données toutes les heures, puis chaque fois qu'un nouvel élément est ajouté à la base de données, ajoutez-le au cache existant. Est-ce possible?

Répondre

0

Le Redis pourrait vous donner deux avantages:

  1. plus rapide récupération de données. Tout système de cache basé sur la mémoire peut vous donner cet avantage par rapport à celui basé sur un fichier ou sur une base de données, tel que memcached.
  2. économie de données flexible en redis. Redis supporte de nombreux types de stockage tels que string, list, set, trié, etc.

À propos de la mise en cache de quoi?

  1. Cache la chose demande fréquente. Si votre client demande quelque chose ou vous demande quelque chose, et que vous n'avez pas de cache, vous devrez l'interroger depuis votre base de données, ce qui vous donnera un coût en temps d'E/S disque. Et si la chose est lourde, le coût d'E/S sera plus important et ralentira votre serveur. Donc, la manière intelligente est, juste interroger une fois, puis enregistrez-le dans redis par magasin de type de données approprié. Après cela, retirez des milliers avec Cache. Mais vous n'avez pas besoin de mettre en cache la base de données globale. Ça a l'air impoli. Et lorsque vous mettez à jour quelque chose dans db, il suffit de supprimer de votre cache et après la prochaine fois que quelqu'un interroge cela, il va enregistrer dans le cache à nouveau.

  2. À propos de la session. C'est chose très fréquente d'accès pour le serveur http, de sorte que chaque utilisateur dans la mémoire cache est plus léger que le fichier ou la base de données si votre serveur d'applications beaucoup beaucoup de gens.

  3. Cache le fichier statique. En fait, je n'ai pas réglé cela. Mais il peut le faire définitivement! Par exemple. Dans l'architecture moderne, il y a souvent un serveur Http devant votre laravel tel que nginx. De cette façon, vous utiliserez nginx pour servir directement le fichier statique. Et si vous voulez diminuer le disque io à ce sujet, vous pouvez ajouter un module comme redis2-nginx-module pour que nginx fasse la même chose: enregistrer le fichier statique en redis une fois et en servir des milliers.