WRONGTYPE对持有错误类型的值php的键进行操作


141

嗨,我将Laravel与Redis一起使用。当我尝试通过get方法访问键时,出现以下错误“ WRONGTYPE操作针对键的值类型错误的操作”

我正在使用以下代码访问键值-

我使用此代码从Redis获取数据

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

Answers:


357

Redis支持5种数据类型。您需要知道键映射到的值的类型,对于每种数据类型,检索它的命令是不同的。

以下是检索键值的命令:

  • 如果值的类型为字符串-> GET <key>
  • 如果值是哈希类型-> HGETALL <key>
  • 如果值是列表类型-> lrange <key> <start> <end>
  • 如果值是类型集-> smembers <key>
  • 如果值是排序集类型-> ZRANGEBYSCORE <key> <min> <max>

使用TYPE命令检查键映射到的值的类型:

  • 类型 <key>

您保存了一天:-)
Zin Minn

8

此错误意味着由键“ l_messages”索引的值不是type hash,而是其他类型。您可能早先在代码中将其设置为其他值。尝试以GET开头的其他各种value-getter命令,看看哪一种有效,并且您将真正知道这里的类型。


8
实际上,print($redis->TYPE($values));无需猜测就可以告诉您;)
Itamar Haber

1
太好了:)不知道此命令,从不必使用它。这是文档:redis.io/commands/type
6
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.