WRONGTYPE Operation gegen einen Schlüssel mit dem falschen Wert php


141

Hallo, ich verwende Laravel mit Redis. Wenn ich versuche, mit der Methode get auf einen Schlüssel zuzugreifen, wird der folgende Fehler angezeigt: "WRONGTYPE Operation gegen einen Schlüssel mit dem falschen Wert"

Ich verwende folgenden Code, um auf den Schlüsselwert zuzugreifen:

Ich benutze diesen Code, um Daten von Redis zu erhalten

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

Antworten:


356

Redis unterstützt 5 Datentypen. Sie müssen wissen, welchem ​​Wertetyp ein Schlüssel zugeordnet ist, da für jeden Datentyp der Befehl zum Abrufen unterschiedlich ist.

Hier sind die Befehle zum Abrufen des Schlüsselwerts:

  • Wenn der Wert vom Typ Zeichenfolge ist -> GET <key>
  • Wenn der Wert vom Typ Hash ist -> HGETALL <key>
  • Wenn der Wert vom Typ Listen ist -> Bereich <key> <start> <end>
  • Wenn der Wert vom Typ set ist -> smembers <key>
  • Wenn der Wert vom Typ sortierte Mengen ist -> ZRANGEBYSCORE <key> <min> <max>

Verwenden Sie den TYPEBefehl, um den Wertetyp zu überprüfen, dem ein Schlüssel zugeordnet ist:

  • Art <key>

Du hast den Tag gerettet :-)
Zin Minn

8

Dieser Fehler bedeutet, dass der durch den Schlüssel "l_messages" indizierte Wert nicht vom Typ ist hash, sondern etwas anderes. Sie haben es wahrscheinlich früher in Ihrem Code auf diesen anderen Wert gesetzt. Probieren Sie verschiedene andere Value-Getter-Befehle aus, beginnend mit GET, um zu sehen, welcher funktioniert, und Sie werden wissen, welcher Typ tatsächlich hier ist.


8
Eigentlich print($redis->TYPE($values));werde ich es dir ohne Rätselraten erzählen;)
Itamar Haber

1
Großartig :) Ich kannte diesen Befehl nicht und musste ihn nie verwenden. Hier ist die Dokumentation: redis.io/commands/type
advanced512
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.