WRONGTYPE Операція з ключем, що містить неправильний тип значення php


142

Привіт, я використовую Laravel з Redis. Коли я намагаюся отримати доступ до ключа методом get, то отримую наступну помилку "WRONGTYPE Operation против ключа, що містить неправильний вид значення"

Я використовую наступний код для доступу до ключового значення -

Я використовую цей код для отримання даних від redis

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

Відповіді:


358

Redis підтримує 5 типів даних. Потрібно знати, який тип значень, який клавішає ключ, як і для кожного типу даних, команда для його отримання є різною.

Ось команди для отримання ключового значення:

  • якщо значення має рядок типу -> GET <key>
  • якщо значення має тип хеша -> HGETALL <key>
  • якщо значення має списки типів -> lrange <key> <start> <end>
  • якщо значення має набори типів -> розмірковує <key>
  • якщо значення має сортовані набори типів -> ZRANGEBYSCORE <key> <min> <max>

Використовуйте TYPEкоманду, щоб перевірити тип значення, на яке відображається ключ:

  • тип <key>

Ви врятували день :-)
Zin Minn

8

Ця помилка означає, що значення, індексоване ключем "l_messages", не має типу hash, а щось інше. Ви, ймовірно, встановили це інше значення раніше у коді. Спробуйте різні інші команди для отримання вартості, починаючи з GET, щоб побачити, яка з них працює, і ви дізнаєтесь, який тип є насправді тут.


8
Власне, print($redis->TYPE($values));скажу це вам без догадок;)
Ітамар Хабер

1
Чудово :) Я не знав цієї команди, ніколи не мав її використовувати. Ось документація: redis.io/commands/type
advance512
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.