


à propos de la méthode Laravel d'utilisation de Redis pour implémenter la lecture du cache du site Web
Jun 13, 2018 am 09:46 AMCet article vous présente principalement les informations pertinentes sur laravel utilisant Redis pour implémenter la lecture du cache du site Web. L'article le présente en détail à travers l'exemple de code. Il a une certaine valeur d'apprentissage de référence pour les études ou le travail de chacun. et apprenons ensemble.
Introduction à redis
Redis est entièrement open source et gratuit, est conforme au protocole BSD et est un outil performant base de données clé-valeur. Redis et d'autres produits de mise en cache clé-valeur
ont les trois caractéristiques suivantes?: Redis prend en charge la persistance des données, qui peut conserver les données dans la mémoire sur le disque et peut être chargée à nouveau pour être utilisée lors du redémarrage.
Redis prend non seulement en charge les données de type clé-valeur simples, mais fournit également le stockage de structures de données telles que liste, ensemble, zset et hachage.
Redis prend en charge la sauvegarde des données, c'est-à-dire la sauvegarde des données en mode ma?tre-esclave.
Avantages de Redis
Extrêmement hautes performances – Redis peut lire à une vitesse de 110 000 fois/s . La vitesse d'écriture est de 81 000 fois/s.
Types de données riches – Redis prend en charge les opérations de type de données Cha?nes, Listes, Hachages, Ensembles et Ensembles ordonnés pour les cas binaires.
Atomique - Toutes les opérations de Redis sont atomiques, et Redis prend également en charge l'exécution atomique après la fusion de plusieurs opérations.
Fonctionnalités riches – Redis prend également en charge la publication/abonnement, les notifications, l'expiration des clés et d'autres fonctionnalités.
Comment installer redis
1. est Ubuntu, donc je n'ai utilisé que cette méthode pour installer)
La méthode d'installation officielle d'Ubuntu
$sudo apt-get update $sudo apt-get install redis-server
Parce que je Le site Web utilise le framework laravel. Vous devez utiliser la méthode composer pour installer
composer require predis/predis
Si vous installez le microframework lumen, vous devez également l'installer. illuminate/redis (5.2. *)
composer require illuminate/redis (5.2.*)
Configuration
si Lumen est installé
//需要在bootstrap/app.php里面加入此段代碼 $app->register(Illuminate\Redis\RedisServiceProvider::class); $app->configure('database');
Redis peut être utilisé comme base de données principale, donc les informations de configuration de Redis dans Laravel se trouvent dans config/database. php?:
'redis' => [ 'cluster' => false, 'default' => [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], ],
L'option cluster indique s'il faut effectuer un partitionnement entre plusieurs n?uds Redis. Ici, nous n'avons qu'un seul n?ud dans le test local, nous définissons donc. c'est faux.
L'option par défaut indique la connexion h?te Redis par défaut. Ici, Redis et le serveur Web partagent un h?te, donc l'h?te est 127.0.0.1 et le port Redis par défaut est 6379.
De plus, l'option par défaut prend également en charge davantage de paramètres de connexion (si nécessaire)?:
Paramètres |
| Valeur par défaut | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
h?te | Adresse IP/h?te du serveur Nom | 127.0.0.1 | |||||||||||||||||||||
port | Numéro de port écouté par le serveur Redis | 6379 td > | |||||||||||||||||||||
Mot de passe | Si le serveur nécessite un mot de passe d'authentification | Ne pas utiliser de mot de passe | |||||||||||||||||||||
base de données | L'index de la base de données sélectionné lors de la connexion | Aucun index n'est défini | |||||||||||||||||||||
timeout'redis' => [ 'driver' => 'redis', 'connection' => 'default', ], | Délai d'expiration de la connexion au serveur Redis | 5 secondes | |||||||||||||||||||||
read_write_timeout td> | Délai d'expiration dépassé pour les opérations de lecture et d'écriture de connexion réseau | Par défaut du système (défini sur -1 si le délai d'expiration n'est pas limité) |
read_write_timeout |Délai d'expiration pour les opérations de lecture et d'écriture via une connexion réseau|Par défaut du système (défini sur -1 si le délai d'expiration n'est pas limité)
En plus Redis S'il est utilisé comme outil de mise en cache, vous devez également configurer l'option redis dans config/cache.php?:
La connexion ici correspond au redis par défaut dans la configuration par défaut de l'h?te config/database.
Après avoir terminé la configuration ci-dessus, nous pouvons utiliser Redis pour accéder aux données dans le code de l'application.
if (Cache::has($key)){ //首先查尋cache如果找到 $values = Cache::get($>key); //直接讀取cache return $values; }else{ //如果cache里面沒(méi)有 $values = DB::select($sql); Cache::put($key,$value,$time); return $values; }Regardez un exemple——Le mysql de Laravel est associé à Redis
Mon idée est que lors de la lecture, allez d'abord dans le cache pour rechercher. Si vous le trouvez, vous aurez de la chance. Si vous ne le trouvez pas, accédez à la base de données pour le rechercher et le transférer dans le cache.
$values = Cache::remember($key,$time,function () { return DB::select($this->sql); });
Mais le cache de Laravel fournit également une fonction de mémorisation
Si le cache est lu et renvoyé directement, si l'élément du cache n'existe pas dans le cache, la fermeture renvoyée à la méthode Remember sera exécutée et le résultat de la fermeture sera stocké dans le cache.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois ! Recommandations associées?:
à propos des opérations de liaison des routes et des contr?leurs du framework Laravel
Pour le cycle de vie du framework Laravel et analyse des principes
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pour réaliser la correction d'erreur de texte et l'optimisation de la syntaxe avec l'IA, vous devez suivre les étapes suivantes: 1. Sélectionnez un modèle ou une API d'IA appropriée, tels que Baidu, Tencent API ou bibliothèque NLP open source; 2. Appelez l'API via Curl ou Guzzle de PHP et traitez les résultats de retour; 3. Afficher les informations de correction d'erreur dans l'application et permettre aux utilisateurs de choisir d'adopter l'adoption; 4. Utilisez PHP-L et PHP_CODESNIFFER pour la détection de syntaxe et l'optimisation du code; 5. Collectez en continu les commentaires et mettez à jour le modèle ou les règles pour améliorer l'effet. Lorsque vous choisissez AIAPI, concentrez-vous sur l'évaluation de la précision, de la vitesse de réponse, du prix et du support pour PHP. L'optimisation du code doit suivre les spécifications du PSR, utiliser le cache raisonnablement, éviter les requêtes circulaires, revoir le code régulièrement et utiliser x

PHP assure l'atomicité de la déduction des stocks via les transactions de base de données et les verrous en ligne de Forupdate pour empêcher la survente élevée élevée en simultation; 2. La cohérence de l'inventaire multiplateforme dépend de la gestion centralisée et de la synchronisation axée sur les événements, combinant des notifications API / WebHook et des files d'attente de messages pour assurer une transmission fiable de données; 3. Le mécanisme d'alarme doit définir un faible inventaire, un inventaire zéro / négatif, des ventes invidables, des cycles de réapprovisionnement et des stratégies de fluctuations anormales dans différents scénarios, et sélectionner Dingtalk, SMS ou les personnes responsables par e-mail en fonction de l'urgence, et les informations d'alarme doivent être complètes et claires pour réaliser l'adaptation et la réponse rapide.

Il existe trois fa?ons principales de définir des variables d'environnement dans PHP: 1. Configuration globale via Php.ini; 2. Passé via un serveur Web (tel que setenv d'Apache ou Fastcgi_param de Nginx); 3. Utilisez la fonction PUTENV () dans les scripts PHP. Parmi eux, PHP.ini convient aux configurations globales et modifiées, la configuration du serveur Web convient aux scénarios qui doivent être isolés et PUTENV () convient aux variables temporaires. Les stratégies de persistance incluent des fichiers de configuration (tels que PHP.ini ou la configuration du serveur Web), les fichiers .env sont chargés de bibliothèque Dotenv et l'injection dynamique de variables dans les processus CI / CD. Les informations sensibles à la gestion de la sécurité doivent être évitées à code dur et il est recommandé de l'utiliser.

Le cache de configuration de Laravel améliore les performances en fusionnant tous les fichiers de configuration dans un seul fichier de cache. L'activation du cache de configuration dans un environnement de production peut réduire les opérations d'E / S et l'analyse de fichiers sur chaque demande, accélérant ainsi le chargement de configuration; 1. Il doit être activé lorsque l'application est déployée, la configuration est stable et aucune modification fréquente n'est requise; 2. Après l'activation, modifiez la configuration, vous devez ré-para?tre phpartisanconfig: cache pour prendre effet; 3. évitez d'utiliser une logique dynamique ou des fermetures qui dépendent des conditions d'exécution dans le fichier de configuration; 4. Lors du dépannage des problèmes, vous devez d'abord effacer le cache, vérifiez les variables .env et re-cache.

Pour permettre aux conteneurs PHP de prendre en charge la construction automatique, le noyau réside dans la configuration du processus d'intégration continue (CI). 1. Utilisez Dockerfile pour définir l'environnement PHP, y compris l'image de base, l'installation d'extension, la gestion de la dépendance et les paramètres d'autorisation; 2. Configurez des outils CI / CD tels que GitLabci et définissez les étapes de construction, de test et de déploiement via le fichier .gitlab-ci.yml pour réaliser une construction, un test et un déploiement automatique; 3. Intégrer des cadres de test tels que PHPUnit pour s'assurer que les tests sont automatiquement exécutés après les modifications du code; 4. Utiliser des stratégies de déploiement automatisées telles que Kubernetes pour définir la configuration de déploiement via le fichier de déploiement.yaml; 5. Optimiser Dockerfile et adopter une construction en plusieurs étapes

Les éloquents de Laravel sont un outil qui résume la logique de requête commune, divisée en portée locale et en portée mondiale. 1. La portée locale est définie avec une méthode commen?ant par la portée et doit être appelée explicitement, comme POST :: publiée (); 2. La portée globale est automatiquement appliquée à toutes les requêtes, souvent utilisées pour la suppression douce ou les systèmes multi-locataires, et l'interface de portée doit être implémentée et enregistrée dans le modèle; 3. La portée peut être équipée de paramètres, tels que le filtrage des articles par année ou par mois, et les paramètres correspondants sont passés lors de l'appel; 4. Faites attention aux spécifications de dénomination, aux appels de cha?ne, à la désactivation temporaire et à l'expansion de la combinaison lors de l'utilisation pour améliorer la clarté du code et la réutilisabilité.

Createahelpers.phpfileinApp / whetters withcustomfonctions likeformatprice, isactiveroute, andisadmin.2.addthefiletothe "fichiers" sectionofcomposer.jsonunderautoload.3.runcomposerdump-autoloadtomakethfunctionsgloballyavailable.4.usethhelperfunctions

Sélectionnez la méthode de journalisation: au stade précoce, vous pouvez utiliser l'erreur intégrée_log () pour PHP. Une fois le projet élargi, assurez-vous de passer à des bibliothèques matures telles que Monolog, prendre en charge plusieurs gestionnaires et niveaux de journal et assurez-vous que le journal contient des horodatages, des niveaux, des numéros de ligne de fichiers et des détails d'erreur; 2. Structure de stockage de conception: une petite quantité de journaux peut être stockée dans des fichiers, et s'il existe un grand nombre de journaux, sélectionnez une base de données s'il existe un grand nombre d'analyses. Utilisez MySQL / PostgreSQL sur des données structurées. Elasticsearch Kibana est recommandé pour semi-structuré / non structuré. Dans le même temps, il est formulé pour les stratégies de sauvegarde et de nettoyage régulières; 3. Interface de développement et d'analyse: il devrait avoir des fonctions de recherche, de filtrage, d'agrégation et de visualisation. Il peut être directement intégré à Kibana ou utiliser la bibliothèque du graphique Framework PHP pour développer l'auto-développement, en se concentrant sur la simplicité et la facilité d'interface.
