Maison > Article > développement back-end > Explication détaillée des étapes de mise en œuvre pour que Laravel utilise Redis pour implémenter la lecture du cache du site Web
Cette fois, je vais vous apporter une explication détaillée des étapes à suivre pour que Laravel utilise Redis pour implémenter la lecture du cache du site Web. Quelles sont les précautions pour que Laravel utilise Redis pour implémenter la lecture du cache du site Web. cas. Jetons un coup d'oeil une fois.
Introduction à redis
Redis est entièrement open source et gratuit, est conforme au protocole BSD et constitue une valeur-clé hautes performances base de données. Redis et d'autres produits de 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
Performances extrêmement élevées – Redis peut lire à 110 000 fois/s et écrire à une vitesse rapide C'est 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. Parce que j'utilise l'environnement Homestead et que la machine virtuelle est Ubuntu ) J'ai uniquement utilisé cette méthode pour installer. Pour Windows, veuillez vous rendre sur http://www.redis.net.cn/tutor ou http://www.jb51.net/article/84071.htm... )
Méthode d'installation officielle d'Ubuntu
$sudo apt-get update $sudo apt-get install redis-server
Étant donné que mon site Web utilise le framework Laravel, je dois utiliser la méthode composer pour l'installer
composer require predis/predis
Si vous avez installé le micro-framework 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 Il 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 partager entre plusieurs nœuds Redis. Ici, nous testons uniquement localement. Un nœud le définit donc sur false.
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 du serveur/nom d'hôte | 127.0.0.1 | |||||||||||||||||||||
port | Port d'écoute du serveur Redis Non . | 6379 | |||||||||||||||||||||
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éfinir | |||||||||||||||||||||
timeout | Délai d'expiration de connexion au serveur Redis | 5 secondes | tr>|||||||||||||||||||||
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é) |
read_write_timeout |通过网络连接进行读写操作的超时时间 |系统默认(不限制超时时间的话设置为-1)
另外Redis如果是作为缓存工具,还需要在config/cache.php配置redis选项:
'redis' => [ 'driver' => 'redis', 'connection' => 'default', ],
这里的connection对应config/database中redis的默认主机default配置。
完成上述配置之后我们就可以在应用代码中使用Redis进行数据存取了。
看一个实例————laravel的mysql与Redis搭配
我的想法是在读取的时候会先去缓存中去查找,如果找到那就大吉大利了,找不到再去数据库中查找并且调到缓存中。
if (Cache::has($key)){ //首先查寻cache如果找到 $values = Cache::get($>key); //直接读取cache return $values; }else{ //如果cache里面没有 $values = DB::select($sql); Cache::put($key,$value,$time); return $values; }
但是laravel的cache还提供了个remember函数
$values = Cache::remember($key,$time,function () { return DB::select($this->sql); });
如果缓存有直接读取并返回,如果缓存项在缓存中不存在,则返回给 remember 方法的闭包将会被运行,而且闭包的运行结果将会被存放在缓存中。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
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!