[SpringBoot] Redis에서 keys VS scan 사용하기 (keys 대신 scan)
·
프로그램/JAVA
안녕하세요! 프뚜입니다. Redis는 Single Thread 아키텍처입니다. 블로킹의 영향으로 성능이 저하되고 장애가 발생할 수 있으므로 프로덕션 환경에서는 절대 사용하지 말아야한다고 알려져 있습니다. Redis > Keys는 Global Pattern으로 간단하게 모든 Key를 조회할 수 있고, 40ms 내에 100만 개의 key가 존재하는 데이터베이스를 스캔할 수 있다고 합니다. 하지만, 명령이 실행되는 도중에는 다른 모든 명령의 실행이 블로킹된다는 점 입니다. Redis > Scan은 non-blocking으로 비교적 안전하게 사용할 수 있습니다. 작은 단위로 증분 반복 순회를 하면서 데이터베이스를 스캔하기 때문입니다. [개발 환경] - OS: Windows 10 64bit - JAVA: 1.8 ..