Operasi WRONGTYPE terhadap kunci yang memegang jenis nilai php yang salah

141

Hai Saya menggunakan Laravel dengan Redis. Ketika saya mencoba mengakses kunci dengan mendapatkan metode kemudian mendapatkan kesalahan berikut "Operasi WRONGTYPE terhadap kunci yang memegang jenis nilai yang salah"

Saya menggunakan kode berikut untuk mengakses nilai kunci -

saya menggunakan kode ini untuk mendapatkan data dari redis

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

Jawaban:

357

Redis mendukung 5 tipe data. Anda perlu tahu tipe nilai apa yang dipetakan kunci, seperti untuk setiap tipe data, perintah untuk mengambilnya berbeda.

Berikut adalah perintah untuk mengambil nilai kunci:

  • jika nilai bertipe string -> GET <key>
  • jika nilai bertipe hash -> HGETALL <key>
  • jika nilai dari daftar jenis -> lrange <key> <start> <end>
  • jika nilai dari set tipe -> smembers <key>
  • jika nilai dari jenis diurutkan set -> ZRANGEBYSCORE <key> <min> <max>

Gunakan TYPEperintah untuk memeriksa jenis nilai yang dipetakan oleh kunci:

  • Tipe <key>
Phoebe Li
sumber
Anda menyelamatkan hari :-)
Zin Minn
8

Kesalahan ini berarti bahwa nilai yang diindeks oleh kunci "l_messages" bukan tipe hash, melainkan sesuatu yang lain. Anda mungkin menyetelnya ke nilai lain sebelumnya dalam kode Anda. Coba berbagai perintah pengambil nilai lainnya, mulai dengan GET, untuk melihat mana yang berfungsi dan Anda akan tahu jenis apa yang sebenarnya ada di sini.

muka512
sumber
8
Sebenarnya, print($redis->TYPE($values));akan menceritakannya kepada Anda tanpa menebak-nebak;)
Itamar Haber
1
Hebat :) Tidak tahu perintah ini, tidak pernah harus menggunakannya. Berikut dokumentasinya: redis.io/commands/type
advance512