redis를 그냥 띄우게 되면 데이터를 무한정 넣을 수 있다. 음? 인메모리 데이터 그리드에 데이터를 무한정 넣을 수 있다고? 그런 말도 안 되는 일이 어떻게 일어나는 걸까. 그 비밀은 바로 maxmemory라는 설정에 있다. 레디스는 maxmemory를 별도로 설정하지 않으면 메모리 제한을 걸지 않는다. 그렇다면 모든 메모리를 잡아먹게 되는 경우라면 어떨까? 그럴 경우에는 디스크의 스왑 영역까지 사용하게 되며, 이 때부터 레디스의 성능이 급격하게 저하된다. 떠올려보면 이러한 케이스가 몇 번 있었던 것 같다. 레디스를 단순히 적당한 수준에서의 캐싱이나 TTL을 걸어 토큰을 저장하는 경우에는 크게 문제 될 일이 없었다. 하지만 학교 공지사항을 스크래핑하는 크론잡을 만들어서 공지사항에 대한 내용을 전부 레디..
예전에 레디스에 대해서 재미있게 다룬 내용을 보았다. 그 당시에는 레디스에 대한 그렇게까지 자세힌 이해도는 없었던 것 같다. 하지만 워낙 글쓴이의 필력이 대단해서 어느새 마지막 문단을 읽고 있었던 것 같다.[June] 레디스의 50가지 그림자 : https://papercut.blog/235 레디스(Redis)의 50가지 그림자터미널에 비친 로그에 좌절해서 얼굴을 찌푸렸다. 이 몹쓸 캐시는 얌전히 데이터를 가지고 있을 생각을 하지 않았다. 원래 캐시는 데이터를 유지할 의무가 없었지만, 몹쓸 개발자였던 나는 일관papercut.blog 예전에는 그냥 레디스라고 하면 그냥 캐시 할 때 쓰는 거 아닌가? 정도였다. 그 외에 레디스에 대한 것이라면 특징 정도가 있겠다. 예를 들면 인메모리 데이터 그리드라는 것,..
저번 포스팅에서는 node-exporter를 통해서 리눅스 시스템을 모니터링하는 방법을 알아봤다. 이번에는 심층적으로 redis를 모니터링해 보자.본론먼저 소스 코드의 예제는 아래와 같다. 궁금하면 직접 docker-compose를 통해서 빠르게 실행해 볼 수 있다.Github Example : https://github.com/marsboy02/redis-exporter-monitoring GitHub - marsboy02/redis-exporter-monitoring: redis-exporter를 사용해서 모니터링하는 소스 코드의 예제입니다redis-exporter를 사용해서 모니터링하는 소스 코드의 예제입니다. Contribute to marsboy02/redis-exporter-monitoring..
필자는 토이 프로젝트를 진행하는 것을 굉장히 좋아한다. 대부분의 토이 프로젝트에서 자주 구현하는 것 중 하나가 크롤러이다. 정보가 넘쳐흐르는 웹 세상에서 원하는 정보를 끌어와 가공하여 다양한 서비스를 제공할 수 있다는 점이 굉장히 흥미로웠기 때문에 많은 토이 프로젝트에서 크롤러를 구현하곤 했다. 크롤러를 만드는 데 node를 쓰기도 하고, python을 쓰기도 하고, Spring과 Kotlin 환경에서 스크래퍼를 구현해보기도 하는 등 거의 모든 프로젝트에 크롤러가 들어가는 것 같다. 이렇게 토이 프로젝트로 크롤러를 이것저것 만들다, 때는 작년 여름 시대생 앱 프로덕트에 쓰일 스크래퍼를 만들게 되었다. 단순히 스크래퍼 하나만을 만드는 것이 아니라 사용자들에게 다양한 서비스를 제공하는 애플리케이션의 유틸리티..