Redis est entièrement open source et gratuit, est conforme au protocole BSD et constitue une base de données clé-valeur hautes performances. Redis et d'autres produits de mise en cache clé-valeur présentent les trois caractéristiques suivantes : Redis prend en charge la persistance des données, qui peut conserver les données en mémoire sur le disque et peut être rechargée 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 à 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 qu'Ubuntu a 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 installez le microframework lumen, vous devez également 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 de cluster indique s'il faut partager entre plusieurs nœuds Redis, ici Notre test local n'a qu'un seul nœud, nous le définissons 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/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 | 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é) 'redis' => [ 'driver' => 'redis', 'connection' => 'default', ], Copier après la connexion |
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里面没有 $values = DB::select($sql); Cache::put($key,$value,$time); return $values; }
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 a une lecture directe et return 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. Recommandations associées :
Un site Web PHP mettant en cache le partage de codeCe 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!