Maison  >  Article  >  base de données  >  Comment résoudre le problème de la suppression par lots des valeurs clés dans Redis

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

王林
王林avant
2023-05-31 08:59:001650parcourir

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

=>[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 (返回行数)

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 test3

Remarque : 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!

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