Maison > base de données > Redis > le corps du texte

Comment résoudre le problème de la suppression par lots des valeurs clés dans Redis

王林
Libérer: 2023-05-31 08:59:00
avant
1667 Les gens l'ont consulté

Problèmes rencontrés :

Au cours du processus de développement, vous rencontrerez des clés qui doivent être supprimées par lots selon certaines règles, telles que login_logID (l'ID est une variable). Vous devez maintenant supprimer des données telles que "login_log*", mais redis lui-même n'a qu'il existe des commandes pour interroger par lots les valeurs de clé d'une classe de clés, mais il n'y a pas de commande pour supprimer par lots une certaine classe.

Solution :

Requérez d'abord, puis supprimez, utilisez xargs pour transmettre les paramètres (xargs peut convertir les données de canal ou d'entrée standard (stdin) en paramètres de ligne de commande), exécutez d'abord l'instruction de requête, puis utilisez la valeur de clé del demandée. paramètre à supprimer.

redis-cli  KEYS key* (查找条件) | xargs redis-cli  del
Copier après la connexion

=>[Le nombre de résultats renvoyés après l'exécution affecte] : (entier) 10[Quantité 10]
Faites une expérience, créez d'abord trois valeurs clés du même type

127.0.0.1:6379> set test1 1
OK
127.0.0.1:6379> set test2 2
OK
127.0.0.1:6379>
1)" test3"

2) "test2"
3) "test1"

Quittez Redis et exécutez la commande de suppression localement

[root@localhost redis]# redis-cli -a 密码 -n 0(数据库) keys "test*" |xargs redis-cli -a 密码 -n 0(数据库)  del
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 3 (返回行数)
Copier après la connexion

Analyse du principe :
Cette commande exécute d'abord la commande keys via le client redis et effectue une recherche floue sur toutes les clés. Grâce à la commande xargs, utilisez la clé précédemment interrogée comme entrée de la commande redis del suivante
Cela équivaut à exécuter redis-cli del test1 test2 test3Remarque : vous devez apporter des conditions redis lors de l'exécution ici, -a doit entrez le mot de passe, -n est la base de données spécifiée. Si redis n'est pas local ou s'il y a d'autres changements, vous devez ajouter -h redis server ip, -p port

Par exemple



redis-cli -h 127.0.0.1. (Adresse IP) -p 6379 (numéro de port) -a mot de passe-n 1 (écrire le numéro dans quelle base de données se trouvent les données) Clé KEYS* (conditions de recherche) | (numéro de port) -un mot de passe-n 1) del
Connaissances supplémentaires :

Suppression dans redis
1 La commande Redis DEL est utilisée pour supprimer les clés existantes, et les clés non existantes seront ignorées.

Par exemple :

127.0.0.1:6379> set hello world

OK

127.0.0.1:6379> del hello
(integer) 1

Mais del ne peut en supprimer qu'un ou plusieurs, et ne peut pas les supprimer par lots lorsque nécessaire Cela ne s'applique pas lorsque la quantité de données supprimées est trop importante

2 Effacez les données de l'ensemble du serveur Redis : flushall
3 Effacez toutes les clés de la bibliothèque actuelle : flushdb
.

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!