코딩마을방범대

Redis를 구축하며 발생한 오류들 본문

💡 백엔드/Redis

Redis를 구축하며 발생한 오류들

신짱구 5세 2023. 6. 29. 11:52

 

 

 

Redis 서버를 구축해 Java를 통해 데이터를 다루는 코드를 짰는데

분명 테스트 서버에서 구동시킬 땐 문제 없이 데이터 CRUD가 작동됐는데 개발 서버에서는 NullPointException이 발생하였다.

Connection이 제대로 이뤄지지 않아 비워있다는 것으로 예상하여 아래 테스트를 실행해보았다.

 

Java

Socket wasServer = new Socket ("IP주소", 포트번호);
boolean result = wasServer.isConnected();

 

Ubuntu

※ Conncection에 실패할 경우 Trying에 머물러있다 (timeout을 설정해주었다면 종료됨)

$ telnet [ip주소] [포트번호]

Trying [ip주소]...
Connected to [ip주소].

 

 


 

 

 

아니나다를까 Connection 실패였다!

 

우분투 터미널에서 redis-server 명령어를 실행하면 아래와 같이 출력되는데,

나는 저게 이 서버에 설정돼있는 Redis 설정을 그대로 가져오는 건 줄 알았는데

아마 백그라운드로 실행하는 service 명령어의 redis-server 실행과는 별도인 것 같다.

 

왜냐하면 나는 방화벽 문제 때문에 테스트를 위해 port를 8080으로 변경하였고,

저기서는 기본값인 6379로 출력되었기 때문이다.

 

 

 


 

 

 

--port 로 포트값을 주면 그 포트대로 실행된다고 하는데,

나는 이미 8080으로 포트를 변경하여 service를 통해 redis를 실행하였으니 8080으로 변경해서 실행하면 충돌 오류가 뜨는게 맞다.

redis-server 자체가 무슨 역할을 하는지는 잘 모르겠다ㅠ

$ redis-server --port 8080

 

혹시 포트 오류 둘째치고 백그라운드가 아닌 포그라운드(포워드그라운드) 실행인가 싶어

redis-server 를 실행해서 나가지 않고 그대로 둔 상태에서 열려있는 redis 프로세스를 검색해보았는데,

service를 통해 실행하던 redis만 확인되었다.

$ sudo ss -4 -tlnp | grep redis

 

 

 

redis-server는 신경쓰지 않고 기존대로 conf 파일 수정하고 service로 실행시키는게 제일 무난한 것 같다...

 

막혀있는 포트는 방화벽 허용을 통해 풀어줬다.

$ sudo ufw allow from any to any port 6379 proto tcp

 

 

 

SMALL