Nous savons tous que la mise en cache des résultats des requêtes peut considérablement améliorer les capacités de service du système et réduire la pression sur le service ou la base de données sous-jacente. Pour la mise en cache avec des conditions de pagination, nous pouvons également mettre en cache plusieurs clés en fonction de différentes conditions de pagination.
Solution de mise en cache des requêtes de pagination basée sur SortedSet
La première solution qui vient à l'esprit est d'utiliser @see ListOperations< ;K, V> Au lieu d'utiliser plusieurs clés en fonction des conditions de pagination, utilisez une clé et mettez en cache toutes les données dans Redis sans pagination, puis utilisez range(key, start, limit) en fonction des conditions de pagination pour obtenir les résultats de la pagination. . (Apprentissage recommandé : Tutoriel vidéo Redis)
Cela posera un problème lorsque le cache échoue, le cache d'écriture simultané entraînera des données en double, c'est ce à quoi j'ai pensé. via Use set pour gérer les données en double pendant la simultanéité. être divisé en fonction du score Organiser les données dans la carte par ordre croissant de valeur. Généralement, le score est la valeur de fieldA dans l'ordre de fieldA de l'instruction SQL
. . Cependant, cette méthode présente également certains problèmes :
La valeur mise en cache par cette clé est bien des données chaudes, mais seules quelques données peuvent être fréquemment utilisées et le reste peut ne pas être utilisé du tout. Par exemple, s'il y a 100 pages de données, seules les 10 premières peuvent réellement être utilisées. Page, cela entraînera également un gaspillage d'espace cache si la mémoire virtuelle redis est utilisée, cela aura également un certain impact<.>La requête SQL est passée de la requête de pagination d'origine à une requête sans pagination. Après l'échec du cache, la capacité de traitement du système sera inférieure à celle d'avant, en particulier pour les grandes tables
Pour plus de techniques liées à Redis. articles, veuillez visiter la colonne Tutoriel de démarrage Redis pour apprendre !
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!