본문 바로가기

레디스

[Redis]라이브 환경에서 설정 변경하기 config set 명령문을 사용하면, 레디스 서버를 재가동하지 않아도, 환경 변수 값을 변경할 수 있다. redis.conf 파일에서 사용할 수 있는 모든 환경변수들을 config set 명령문으로 변경할 수 있다. 그래서 maxmemory, memory 관리 정책 등을 변경해줘야할 때, 이 명령문을 사용하면 redis를 재가동하지 않아도 된다. 예시 CONFIG SET MAXMEMORY 100000 참고 자료 https://redis.io/commands/config-set
[Redis]메모리 관리 방식 조사 배경TTL이 만기된 캐시키들이 삭제(evicted)되지 않는 현상을 발견하면서, 레디스에서 메모리를 관리하는 방법이 궁금해졌다 알게된 것* 레디스는 아래의 세가지 상황 때, 메모리를 정리한다. A. 만료된 키를 가져올 때 B. 샘플링한 데이터 중에 만료된 키가 있는 경우 C. 메모리 관리 정책을 설정했을 때, 논리적인 데이터 사용량이 maxmemory를 초과한 경우 => 실제 사용량으로 잡히는 rss를 기준으로 메모리를 정리하지 않는다. * 레디스는 jemalloc을 쓴다. * 용량이 큰 데이터를 자주 썼다가, 지우면 파편화가 발생하기 쉽다. 그리고 데이터의 크기 편차가 크면, 파편화가 생기기 쉽다. 실제 사용량보다 rss가 높게 나온다는 거다. 이 경우를 해결하려면, 장비를 이전하는게 낫다. 데뷰..
[Cache]Redis vs Memcached VS 캐시를 사용할 때, Redis와 Memcached 중 어떤걸 선택해야하는지고민이 될 때가 있다. 그래서 실무에서 발생하던 사건들과 책과 구글에서 본 내용을 기반으로, 어떤 경우에 두 캐시가 각각 유용한지 정리해보려고 한다. Redis 장점- 디스크에 데이터를 기록하고 있기 때문에, Redis 메모리가 날라가도 데이터를 복구할 수 있다.( 스냅샷을 떠서, 이를 사용하는 RDB 방식과 Write / Update Event를 로그에 남겨서 이를 기반으로 복구하는 AOF 방식 두가지가 있다. )- 다양한 데이터 포맷을 지원한다. String, List, Set, Sorted sets, Hash 등의 데이터 포맷을 지원한다. 그래서 애플리케이션 단에서 편하게 데이터를 저장하고, 사용할 수 있다.- Memca..