WRONGTYPE Operazione contro una chiave che contiene il tipo sbagliato di valore php


142

Ciao sto usando Laravel con Redis. Quando sto provando ad accedere a una chiave con il metodo get quindi ottengo il seguente errore "Operazione WRONGTYPE contro una chiave che contiene il tipo sbagliato di valore"

Sto usando il seguente codice per accedere al valore chiave -

io uso questo codice per ottenere dati da Redis

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

Risposte:


358

Redis supporta 5 tipi di dati. È necessario sapere a quale tipo di valore viene associata una chiave, come per ogni tipo di dati, il comando per recuperarlo è diverso.

Ecco i comandi per recuperare il valore chiave:

  • se il valore è di tipo stringa -> OTTIENI <key>
  • se il valore è di tipo hash -> HGETALL <key>
  • se il valore è di tipo elenchi -> lrange <key> <start> <end>
  • se il valore è di tipo imposta -> smembers <key>
  • se il valore è di tipo set ordinati -> ZRANGEBYSCORE <key> <min> <max>

Utilizzare il TYPEcomando per verificare il tipo di valore che una chiave sta mappando su:

  • genere <key>

Hai salvato la giornata :-)
Zin Minn

8

Questo errore indica che il valore indicizzato dalla chiave "l_messages" non è di tipo hash, ma piuttosto qualcos'altro. Probabilmente lo hai impostato su quell'altro valore prima nel tuo codice. Prova vari altri comandi value getter, a partire da GET, per vedere quale funziona e saprai quale tipo è effettivamente qui.


8
In realtà, te print($redis->TYPE($values));lo dirò senza congetture;)
Itamar Haber,

1
Ottimo :) Non conoscevo questo comando, non ho mai dovuto usarlo. Ecco la documentazione: redis.io/commands/type
anticipo 512
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.