NDM

Embedded Redis 테스트 중 Check logs 해결 방법 본문

Spring

Embedded Redis 테스트 중 Check logs 해결 방법

ndm.jr 2023. 5. 18. 16:24

첫번째 에러

Caused by: java.lang.RuntimeException: Can't start redis server. Check logs for details.

 

Check logs 하라는데 log를 안뱉어줍니다. 다음과 같이 하시면 됩니다.

 

https://github.com/kstyrc/embedded-redis/blob/master/src/main/java/redis/embedded/AbstractRedisInstance.java#L59

 

GitHub - kstyrc/embedded-redis: Redis embedded server for Java integration testing

Redis embedded server for Java integration testing - GitHub - kstyrc/embedded-redis: Redis embedded server for Java integration testing

github.com

 

해당 부분에 디버깅을 걸고, 에러를 읽어주시면 됩니다. 보통 두 가지중 하나로 나옵니다.

 

Creating Server TCP listening socket 127.0.0.1:6379: bind: No such file or directory

 이 경우, 작업관리자 > 세부정보 > redis-server.exe 를 찾아 죽여주시면 됩니다. 

추가로, Intellij > Settings > Build, Execution, Deployment > Build Tools > Gradle 에서 Intellij IDEA로 바꿔주세요.

 

 

The Windows version of Redis allocates a memory mapped heap for sharing with
the forked process used for persistence operations. In order to share this
memory, Windows allocates from the system paging file a portion equal to the
size of the Redis heap.

 

이 경우는, Embedded Redis 설정을 다음과 같이 maxmemory 설정을 넣어서 바꿔주시면 됩니다.

 

@PostConstruct
    public void redisServer() throws IOException {
        log.info("Embedded Redis 시작");
        redisServer = RedisServer.builder()
                .port(6379)
                .setting("maxmemory 128M")
                .build();
        redisServer.start();
    }

 

 

 

 

출처

 

https://github.com/kstyrc/embedded-redis/issues/51

 

https://velog.io/@zhyun/Embedded-Redis-%EC%8B%A4%ED%96%89-%EC%97%90%EB%9F%AC-%EA%B8%B0%EB%A1%9D