Comment ajouter la commande Redis

Redis est devenu le cache standard pour les sociétés Internet en raison de ses hautes performances et de ses fonctionnalités légères. Parfois, nous souhaitons ajouter des commandes personnalisées, principalement dans les scénarios où Redis est fortement utilisé, comme. dans les scénarios d'achat de panique, il est nécessaire de garantir la transactionnalité de plusieurs commandes Redis. S'il n'y a pas de bonne garantie d'atomicité, des problèmes d'incohérence des données peuvent facilement survenir.
Bien que le plan de transaction officiel soit fourni, s'il est nécessaire de porter un jugement basé sur la valeur de retour d'une certaine commande avant de passer à l'étape suivante, le plan de transaction ne pourra pas y faire face.
Aujourd'hui, nous allons utiliser un cas pratique pour décrire comment ajouter une commande Redis. Cette commande est principalement utilisée dans les scénarios anti-brushing :
Il est souvent nécessaire de bannir une certaine IP ou une. certain utilisateur pendant un certain temps. Si cette commande n'est pas utilisée, la solution est la suivante :
Commencez par augmenter, puis déterminez si c'est 1. Si c'est 1, définissez le délai d'expiration. On peut voir que si le premier client qui initie la requête incr raccroche pendant une concurrence élevée, la clé n'expirera pas.
La commande à écrire aujourd'hui est utilisée pour assurer cette transaction. Le côté serveur s'assure que si la valeur de la clé est 1, le délai d'expiration est défini. L'utilisation de la commande
est la suivante :
incexpire key expireTime maxNum
key : la clé à traiter
expireTime : délai d'expiration, en secondes Si vous écrivez 10, cela signifie. que la clé expirera dans 10 secondes. ;
maxNum : Indique le montant à augmenter jusqu'à ce qu'il n'augmente pas. S'il est défini sur 10, la valeur maximale renvoyée est 11. Renvoyer 11 signifie qu'il a été. dépassé ;
2. Écrivez la commande
1. Téléchargez le code redis
La version Redis utilisée dans cet article est
Télécharger ; le code et passez à la branche 3.2.11
git clone https://github.com/antirez/redis
2. Écrivez du code de commande supplémentaire
1) Ajoutez une nouvelle commande à la structure redisCommandTable dans src/server.c
struct redisCommand redisCommandTable[] = {redisCommandTable est un tableau, chaque élément représente une commande redis et le premier représente une commande. Le deuxième est la fonction de traitement réelle et le troisième est le nombre de paramètres. Les autres ne seront pas discutés en détail.
2) Ajoutez une déclaration de fonction dans src/server.h :
void incrExpireCommand(client *c);
3) Ajoutez ensuite un fichier comme ljh.c (nommez-le vous-même) et ajoutez le code suivant :
#include "server.h"
4) Ajouter un nouveau fichier ljh.o dans src/Makefile
REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking
L'effet d'exécution est le suivant

Comme vous pouvez le voir, après que key1 soit augmenté à 11, il n'augmente plus et après 10 secondes, il redevient 1.
Enfin, nous devons encore nous demander s'il est nécessaire d'ajouter des commandes Redis dans notre scénario. Si nécessaire, nous devons saisir les responsabilités entre chaque couche et ne pas laisser Redis finir par traiter les affaires ; a déclaré que la couche middleware gère généralement des fonctions relativement courantes. Les couches inférieures devraient être plus stables et moins il y a de changements, la situation est normale.
Pour plus de connaissances connexes, veuillez prêter attention à la colonne tutoriel d'introduction à Redis
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 grâce à 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)
Sujets chauds
Points d'optimisation de Laravel8
Apr 18, 2025 pm 12:24 PM
Laravel 8 fournit les options suivantes pour l'optimisation des performances: Configuration du cache: utilisez Redis pour cache des pilotes, des façades de cache, des vues de cache et des extraits de page. Optimisation de la base de données: établissez l'indexation, utilisez la portée de la requête et utilisez des relations éloquentes. Optimisation JavaScript et CSS: utilisez le contrôle de version, fusionnez et rétractable, utilisez CDN. Optimisation du code: utilisez le package d'installation du compositeur, utilisez les fonctions Laravel Helper et suivez les normes PSR. Surveillance et analyse: utilisez Laravel Scout, utilisez le télescope, surveillez les mesures d'application.
Comment utiliser la solution Redis Cache pour réaliser efficacement les exigences de la liste de classement des produits?
Apr 19, 2025 pm 11:36 PM
Comment la solution de mise en cache Redis réalise-t-elle les exigences de la liste de classement des produits? Pendant le processus de développement, nous devons souvent faire face aux exigences des classements, comme l'affichage d'un ...
Que faire si le cache Redis échoue dans Spring Boot?
Apr 19, 2025 pm 08:03 PM
Dans Springboot, utilisez Redis pour mettre en cache l'objet OAuth2Authorisation. Dans l'application Springboot, utilisez SpringSecurityoAuth2AuthorizationsServer ...
Les meilleurs packs d'extension de Laravel recommandés: 2024 outils essentiels
Apr 30, 2025 pm 02:18 PM
Les packages d'extension Laravel essentiels pour 2024 incluent: 1. Laraveldebugbar, utilisé pour surveiller et déboguer le code; 2. Laraveltelescope, fournissant une surveillance détaillée des applications; 3. Laravelhorizon, gérant les tâches de file d'attente Redis. Ces packs d'extension peuvent améliorer l'efficacité du développement et les performances des applications.
Construction de l'environnement Laravel et configuration de base (Windows / Mac / Linux)
Apr 30, 2025 pm 02:27 PM
Les étapes pour créer un environnement Laravel sur différents systèmes d'exploitation sont les suivantes: 1.Windows: Utilisez XAMPP pour installer PHP et compositeur, configurer les variables environnementales et installer Laravel. 2.MAC: Utilisez Homebrew pour installer PHP et Composer et installer Laravel. 3.Linux: utilisez Ubuntu pour mettre à jour le système, installer PHP et compositeur et installer Laravel. Les commandes et chemins spécifiques de chaque système sont différents, mais les étapes de base sont cohérentes pour assurer la construction fluide de l'environnement de développement de Laravel.
Rôle de Redis: Explorer les capacités de stockage et de gestion des données
Apr 22, 2025 am 12:10 AM
Redis joue un rôle clé dans le stockage et la gestion des données, et est devenu le cœur des applications modernes à travers ses multiples structures de données et mécanismes de persistance. 1) Redis prend en charge les structures de données telles que les chaînes, les listes, les collections, les collections ordonnées et les tables de hachage, et convient au cache et à la logique métier complexe. 2) Grâce à deux méthodes de persistance, RDB et AOF, Redis assure un stockage fiable et une récupération rapide des données.
Dans un environnement multi-nœuds, comment s'assurer que la tâche de synchronisation @Scheduled de Spring Boot est exécutée uniquement sur un seul nœud?
Apr 19, 2025 pm 10:57 PM
La solution d'optimisation pour les tâches de synchronisation Springboot dans un environnement multi-nœuds développe le ressort ...
Redis: Comprendre son architecture et son objectif
Apr 26, 2025 am 12:11 AM
Redis est un système de stockage de structure de données de mémoire, principalement utilisé comme base de données, cache et courtier de messages. Ses caractéristiques principales incluent un modèle unique, un multiplexage d'E / S, un mécanisme de persistance, des fonctions de réplication et de clustering. Redis est couramment utilisé dans les applications pratiques pour la mise en cache, le stockage de session et les files d'attente de messages. Il peut améliorer considérablement ses performances en sélectionnant la bonne structure de données, en utilisant des pipelines et des transactions, et en surveillant et en réglage.


