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);

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>

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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.