2016-06-21 17 views
13

Ciao Sto usando Laravel con Redis. Quando sto cercando di accedere a un tasto con il metodo get ottieni il seguente errore "WRONGTYPE Operazione contro una chiave che contiene il tipo sbagliato di valore "WRONGTYPE Operazione rispetto a un tasto che contiene il tipo di valore errato php

sto usando seguente codice per accedere al valore della chiave -

io uso questo codice per ottenere dati da Redis

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

risposta

3

questo errore significa che il valore indicizzato dai chiave 'l_messages' è non di tipo hash, ma rathe r qualcos'altro Probabilmente lo hai impostato su quell'altro valore in precedenza nel tuo codice. Prova vari altri comandi value-getter, iniziando con GET, per vedere quale funziona e saprai quale tipo è effettivamente qui.

+3

In realtà, 'di stampa ($ riscoperto> TIPO ($ valori));' volontà dillo al tuo senza indovinare;) –

+0

Grande :) Non conoscevo questo comando, non ho mai dovuto usarlo. Ecco la documentazione: http://redis.io/commands/type – advance512

28

Redis supporta 5 tipi di tipi di dati. È necessario conoscere il tipo di valore a cui è associata la chiave, come per ogni tipo di dati, il comando per recuperarlo è diverso.

Qui ci sono i comandi per recuperare il valore della chiave:

  • se il valore è di tipo stringa -> GET <key>
  • se il valore è di tipo hash -> HGETALL <key>
  • se il valore è di tipo liste -> lrange <key> <start> <end>
  • se il valore è di tipo set -> smembers <key>
  • se il valore è di tipo ordinato set -> ZRANGEBYSCORE <key> <min> <max>

comando per controllare il tipo di valore di una mappatura dei tasti a:

  • tipo <key>
Problemi correlati