error in execution; nested exception is io.lettuce.core.rediscommandexecutionexception: wrongtype operation against a key holding the wrong kind of value

Yunny.Log ·2022년 11월 22일
0

Debugging

목록 보기
52/69
post-thumbnail

결론부터 말하면 ...

레디스의 자료구조가 다르다고 키를 같은 값을 쓰면 안되는 것이었다!

  • 나는 이미 레디스의 자료구조 중 SortedSet이라는 놈을 쓰고 있었다.
    • 아래와 같이 sorted set 을 만들어 넣어주고 있었음
redisTemplate.opsForZSet().rank(**키값**, people);
  • 근데 그 이후 레디스 자료구조 중에 HashMap을 사용할 일이 있어서 Sorted Set 이랑 동일한 키 값으로 해도 다른 자료구조니깐 다르게 관리가 되겠지~ 생각해서 (근거없는 자신감,,뇌피셜이 이렇게 무섭다,,)
return redisTemplate.opsForHash()
.size(String.valueOf(**SortedSet에서쓰던것과동일한키값**));

위와 같이 추가적으로 SortedSet 과 동일한 키 값을 쓰는 HashMap 을 생성하고, 이 키 값으로 HashMap을 불러오려고 했다.

그 러 나

error in execution; nested exception is io.lettuce.core.rediscommandexecutionexception: wrongtype operation against a key holding the wrong kind of value

에러가 나는 것이었다.

그것은 바로 return redisTemplate.opsForHash() .size(String.valueOf(**SortedSet에서쓰던것과동일한키값**)) 으로 hash 를 불러오려고 했으나, 이미 동일 키 값으로 지정된 sorted set 이 존재하기 때문에 너 지금 operation 잘못 쓰고 있어 ㅠㅠ 라고 레디스가 에러를 뱉어주는 것이었다.

해결

hash 에는 다른 키값을 지정해 넣어줌으로써 키 값을 다르게 해주며 에러를 해결 !

reference

https://m.blog.naver.com/newwodudrj/221376339003

0개의 댓글