본문 바로가기

Operations/Redis

[레디스] 클러스터링을 구성하면서 생긴 오류 모음

error: got 4 elements in cluster info address, expected 2 or 3

7.0 버전에서 나는 오류. 6.대로 레디스 버전을 변경하면 해결된다.

https://github.com/go-redis/redis/issues/2085

Address updated for node Redis

계속해서 로그가 엄청 많이 쌓이는 문제

Address updated for node 34192c4b802580dd7eaf39700d2fa9ec8d3a172b, now 127.0.0.1:5004

위와 같은 로그는 클러스터링이 제대로 안되어 있을때 다시 클러스터링을 해주려고 나오는 로그이다.

redis-cli로 접속하여 cluster nodes를 확인해 보면 클러스터링이 제대로 연결이 되어있지 않을경우가 있다.

레디스 클러스터링 해제시키기

위와 같은 오류로 확인해보니 클러스터링이 제대로 걸려있지 않았다. 한개의 서버에 두개의 마스터노드가 돌고 있었고 다른 한 서버에는 두개의 슬레이브 서버가 돌고있고, 클러스터링은 엉켜 있었다.

cluster reset, cluster forget 등 방법은 많지만 클러스터링을 사용하기 전에 구성하다가 생긴 오류이기 때문에 데이터손실의 걱정이 없었고, 레디스 연결이 끊겨도 상관없어서 모든 설정을 지우고 다시 클러스터링 해주는 방법을 선택했다.

  1. 클러스터링 되어있는 레디스를 모두 정지시키고,
  2. .aof 파일들을 지우고 자동 생성되는 .conf 파일들을 모두 지웠다. 그렇게 하면 레디스 정보가 초기화 된다. 레디스를 모두 재시작 시켜준 후
  3. 다시 클러스터링을 걸어주면 정상 동작한다.

predixy - "redis cluster nodes get node invalid"

predixy의 로그를 보면 다음과 같은 warning오류가 뜬다.

2022-10-13 14:52:24.974237 W ClusterServerPool.cpp:109 redis cluster nodes get node invalid 4b14d4d48b5e1ac803d1fab9d26e95085b56a7ba  slave,fail?,noaddr b18407fa42ed90cc1c81f62aeab61af4a4cb0992
2022-10-13 14:52:24.974245 W ClusterServerPool.cpp:109 redis cluster nodes get node invalid a991e6494bb88b0bbefe60fc95a97beb3df45215  master,fail?,noaddr -

클러스터링을 재구성 한 후 predixy를 통해 레디스를 연결하면 위와같은 에러가 뜨며 클러스터링을 재구성 하려고 시도한다.

predixy를 재시작해줘서 해결.

predixy github에 코드가 있어서 확인해보면 log를 warn으로 찍는다. 실제로 레디스를 이용하는데에는 크게 영향이 없다.

코드를 보면 init → setGlobal → setClusterServerPool을 통해서 레디서 클러스터링에 등록된 서버들을 등록 하는데 클러스터링의 정보가 바뀌어도 다시 setClusterServerPool을 다시 실행시키지 않으므로 발생되는 오류로 보인다. github에 이슈로 올리고 싶으나 업데이트가 잘 되지않는 프로젝트로 보이기도 하고 cpp이라서 기여하기는 어려울거라 생각하여 그냥 넘긴다.

'Operations > Redis' 카테고리의 다른 글

[레디스] 클러스터링 적용하기 - predixy  (0) 2022.09.03
[레디스] 클러스터링 적용하기  (0) 2022.08.31