Cześć, używam Laravel z Redisem. Kiedy próbuję uzyskać dostęp do klucza metodą get, a następnie otrzymuję następujący błąd „Operacja WRONGTYPE przeciwko kluczowi zawierającemu niewłaściwy rodzaj wartości”
Używam następującego kodu, aby uzyskać dostęp do wartości klucza -
używam tego kodu do pobierania danych z Redis
$values = "l_messages";
$value = $redis->HGETALL($values);
print($value);
Ten błąd oznacza, że wartość indeksowana przez klucz „l_messages” nie jest typu
hash
, ale raczej jest czymś innym. Prawdopodobnie ustawiłeś tę inną wartość wcześniej w kodzie. Wypróbuj różne inne polecenia pobierające wartość, zaczynając od GET, aby zobaczyć, które z nich działa i będziesz wiedzieć, jaki typ jest tutaj.źródło
print($redis->TYPE($values));
opowiem ci to bez domysłów;)Napotkałem ten problem, próbując ustawić coś na redis. Problem polegał na tym, że wcześniej użyłem metody „set” do ustawiania danych z określonym kluczem, np
$redis->set('persons', $persons)
Później zdecydowałem się przejść na metodę „hSet” i próbowałem to w ten sposób
foreach($persons as $person){ $redis->hSet('persons', $person->id, $person); }
Wtedy otrzymałem wspomniany błąd. Musiałem więc przejść do redis-cli i ręcznie usunąć wpis „osoby” za pomocą
Po prostu nie mógł zapisać innej struktury danych pod istniejącym kluczem, więc musiałem wtedy usunąć wpis i hSet.
źródło