WRONGTYPE Yanlış türde php değerini tutan bir tuşa karşı işlem


142

Merhaba, Laravel'i Redis ile kullanıyorum. Get yöntemiyle bir anahtara erişmeye çalıştığımda, "Yanlış türde bir değeri tutan bir tuşa karşı YANLIŞ TİP İşlemi" hatasını alıyorum.

Anahtar değerine erişmek için aşağıdaki kodu kullanıyorum -

Bu kodu redis'ten veri almak için kullanıyorum

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

Yanıtlar:


361

Redis, 5 veri türünü destekler. Her veri türü için olduğu gibi, bir anahtarın ne tür bir değerle eşleştiğini bilmeniz gerekir, onu geri alma komutu farklıdır.

Anahtar değerini almak için komutlar şunlardır:

  • değer string türündeyse -> GET <key>
  • değer hash türündeyse -> HGETALL <key>
  • değer listeleri türündeyse -> aralık <key> <start> <end>
  • değer set türündeyse -> smembers <key>
  • değer sıralı kümeler türündeyse -> ZRANGEBYSCORE <key> <min> <max>

TYPEBir anahtarın eşleştiği değer türünü kontrol etmek için komutu kullanın :

  • tip <key>

1
Günü kurtardınız :-)
Zin Minn

8

Bu hata, "l_messages" anahtarı tarafından indekslenen değerin türde değil, hashbaşka bir şey olduğu anlamına gelir. Muhtemelen kodunuzda daha önce bu diğer değere ayarlamışsınızdır. Hangisinin işe yaradığını görmek için GET ile başlayarak diğer çeşitli değer alıcı komutlarını deneyin ve burada gerçekte hangi türün olduğunu anlayacaksınız.


8
Aslında print($redis->TYPE($values));tahmin yürütmeden size söyleyeceğim;)
Itamar Haber

1
Harika :) Bu komutu bilmiyordum, hiç kullanmak zorunda kalmadım. Belgeler şu
şekildedir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.