WRONGTYPE Operación contra una clave que contiene el tipo incorrecto de valor php


141

Hola, estoy usando Laravel con Redis. Cuando intento acceder a una clave mediante el método get, aparece el siguiente error "Operación WRONGTYPE contra una clave que contiene el tipo de valor incorrecto"

Estoy usando el siguiente código para acceder al valor clave:

uso este código para obtener datos de redis

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

Respuestas:


357

Redis admite 5 tipos de datos. Debe saber a qué tipo de valor se asigna una clave, ya que para cada tipo de datos, el comando para recuperarlo es diferente.

Aquí están los comandos para recuperar el valor clave:

  • si el valor es de tipo cadena -> OBTENER <key>
  • si el valor es de tipo hash -> HGETALL <key>
  • si el valor es de tipo listas -> lrange <key> <start> <end>
  • si el valor es de tipo sets -> smembers <key>
  • si el valor es de tipo conjuntos ordenados -> ZRANGEBYSCORE <key> <min> <max>

Use el TYPEcomando para verificar el tipo de valor al que se asigna una clave:

  • tipo <key>

Has salvado el día :-)
Zin Minn

8

Este error significa que el valor indexado por la clave "l_messages" no es de tipo hash, sino algo más. Probablemente lo haya configurado en ese otro valor anteriormente en su código. Pruebe varios otros comandos de obtención de valor, comenzando con GET, para ver cuál funciona y sabrá qué tipo es realmente aquí.


8
En realidad, print($redis->TYPE($values));se lo diré a usted sin las conjeturas;)
Itamar Haber

1
Genial :) No conocía este comando, nunca tuve que usarlo. Aquí está la documentación: redis.io/commands/type
advance512
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.