Maison >base de données >Redis >Introduction au cache multiniveau Redis

Introduction au cache multiniveau Redis

尚
avant
2020-05-02 09:07:543094parcourir

Introduction au cache multiniveau Redis

Selon la granularité de grossière à fine :

Prenons l'exemple de la page de détails du produit

Mise en cache au niveau de la page

1. 🎜>

(Parfois également appelé cache au niveau de l'URL, la page est rendue manuellement et enregistrée sur redis (key=product id, val="page de détails du produit. Lorsque cette page est demandée à nouveau dans le futur, elle est obtenue à partir de redis et renvoie le texte/html directement au front-end, et vous pouvez demander au navigateur de mettre la page en cache localement. L'inconvénient est que les données de la page ne sont pas mises à jour à temps)

2. Mise en cache au niveau de l'objet

.

(telles que les données produit, (key= product id, val="database "Find product data") enregistrera les informations produit interrogées une fois dans Redis. Lors de la deuxième demande de modification des données produit, la requête sera être donné la priorité à redis)

L'idée de la mise en cache redis est la suivante :

1. Vérifiez d'abord s'il y a des données dans redis

1.1. return

1.2. Sinon, interrogez la base de données, stockez-la dans redis, puis retournez

2 Faites attention à la mise en cache du cycle de vie,

Si le cycle est permanent. , alors redis s'effondrera facilement, ce n'est qu'une question de temps

Utilisation de redis dans la vente flash :

1. Tuez d'abord le flash L'inventaire des produits est pré-stocké dans redis

.

2. Après le début de la vente flash, l'inventaire est pré-diminué dans redis et réduit à 0. La vente flash du produit se termine (redis est monothread)

3. Si afin de réduire le besoin Pour la pression d'accès Redis, les demandes de vente flash soumises par les utilisateurs peuvent être placées dans mq (comme RabbitMq)

Par exemple, il n'y a que 10 produits au total, et un total de 100 000 utilisateurs les regardent, tous soumettant des demandes de vente flash presque en même temps,

3.1 Vous pouvez mettre la demande dans la file d'attente des messages et la renvoyer au front-end en tant que « file d'attente » ;

3.2. le consommateur (le "consommateur" de la file d'attente) lit dans la file d'attente des messages à une vitesse fixe Récupère les données et crée des commandes dans la base de données (c'est-à-dire crée 10 commandes de manière ordonnée, avec 0 impact sur la base de données),

3.3. Bien qu'il puisse s'agir des 10 principaux utilisateurs, si la création de la commande échoue pour une raison quelconque, la demande de vente flash de l'utilisateur sera placée à la fin de mq, puis des commandes seront créées pour d'autres utilisateurs dans la file d'attente

3.4. Si la commande est créée avec succès, la demande sera supprimée de mq et un SMS sera envoyé à l'utilisateur." Félicitations, la vente flash est réussie ! "

3.5. Après avoir créé avec succès 10 commandes (c'est-à-dire que la vente flash se termine), demandez aux autres utilisateurs dans la file d'attente de renvoyer "la vente flash a échoué"

Pour plus de connaissances sur Redis, veuillez faire attention Tutoriel d'introduction à Redis

colonne .

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer