잘못된 종류의 값을 가진 키에 대한 잘못된 유형의 PHP


142

안녕하세요, Redis와 함께 Laravel을 사용하고 있습니다 .get 메소드로 키에 액세스하려고하면 "잘못된 유형의 값을 보유하는 키에 대한 잘못된 유형 작업"오류가 발생합니다.

키 값에 액세스하기 위해 다음 코드를 사용하고 있습니다.

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));추측없이 당신에게 말할 것입니다;)
Itamar Haber

1
Great :)이 명령을 몰랐기 때문에 사용하지 않아도됩니다. 다음은 설명서입니다 : redis.io/commands/type
advance512
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.