WRONGTYPE Opération contre une clé contenant le mauvais type de valeur php


142

Salut, j'utilise Laravel avec Redis. Lorsque j'essaie d'accéder à une clé par la méthode get, j'obtiens l'erreur suivante "Opération WRONGTYPE contre une clé contenant le mauvais type de valeur"

J'utilise le code suivant pour accéder à la valeur de clé -

j'utilise ce code pour obtenir des données de redis

$values = "l_messages";
$value = $redis->HGETALL($values);
print($value);

Réponses:


359

Redis prend en charge 5 types de données. Vous devez savoir à quel type de valeur correspond une clé, car pour chaque type de données, la commande permettant de la récupérer est différente.

Voici les commandes pour récupérer la valeur de clé:

  • si la valeur est de type chaîne -> GET <key>
  • si la valeur est de type hash -> HGETALL <key>
  • si la valeur est de type listes -> lrange <key> <start> <end>
  • si la valeur est de type ensembles -> smembers <key>
  • si la valeur est de type ensembles triés -> ZRANGEBYSCORE <key> <min> <max>

Utilisez la TYPEcommande pour vérifier le type de valeur auquel une clé est mappée:

  • type <key>

1
Vous avez sauvé la mise :-)
Zin Minn

8

Cette erreur signifie que la valeur indexée par la clé "l_messages" n'est pas de type hash, mais plutôt autre chose. Vous l'avez probablement défini sur cette autre valeur plus tôt dans votre code. Essayez diverses autres commandes de récupération de valeur, en commençant par GET, pour voir laquelle fonctionne et vous saurez quel type est réellement ici.


8
En fait, print($redis->TYPE($values));je le dirai à vous sans deviner;)
Itamar Haber

1
Super :) Je ne connaissais pas cette commande, je n'ai jamais eu à l'utiliser. Voici la documentation: redis.io/commands/type
advance512
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.