본문 바로가기

Redis

(5)
Redis 메모리 퇴거 정책 LRU, LFU, Random Redis에 대해서 공부를 하던중 Redis는 메모리가 부족하게 되면 설정한 퇴거 알고리즘에 맞게 메모리를 확보한다는것을 알게 되었다. 종류로는 LRU(Least Recently Used), LFU(Least Frequently Used), Random 3가지 종류가 있다. 각각의 3가지 종류는 또 3가지의 방법을 이용해서 메모리를 확보한다. 메모리 제한에 도달하게 되면 데이터를 지우지 않고 OOM을 반환하는 noeviction 방식 모든 데이터를 대상으로 키를 삭제하는 allkeys 방식 만료된 데이터 중에서 삭제하는 volatile LRU, LFU, Random은 3가지 방식을 이용해서 삭제를 한다. 그럼 LRU, LFU, Random 알고리즘이란? LRU 알고리즘이란? 데이터마다 사용한 시간을 표시..
Redis - pub sub 이란? 이번에 pub/sub 기능 추가가 필요하게 되었고, 마침 사용하던 redis가 pub/sub기능을 지원함에 따라 사용하게 되었습니다. 기능을 추가하면서 공부했던걸 정리하려고합니다. 1. pub/sub이란 무엇인가? pub/sub이란 채널을 구독한 subscribe에게 모든 메세지를 전송 하는것을 의미합니다. pub/sub의 경우 바로 subscribe한 구독자들에게 메세지를 전송 하므로 , 메세지를 보관하지 않습니다. 이런 pub/sub은 주로 채팅 기능이나, 푸시 알림등에서 사용 합니다. 2. redis-cli 에서 pub/sub 사용하기 콘솔에 redis-cli를 입력합니다. redis-cli redis-cli에 subscribe Channel(채널 이름) 을 입력합니다. subscribe Chann..
Redis - LFU 알고리즘이란? Redis는 4.0 버전부터 LFU 알고리즘이라는것을 추가 지원하기로 했다. Redis의 LFU 알고리즘이란? LFU (Least Frequently Used)란 뜻으로 자주 사용되는 캐시는 메모리상에 그대로 두고, 그렇지 않은 데이터들을 지워주는 알고리즘을 의미한다. Redis LFU는 Approximated LRU라는 페이지 교체 알고리즘과 비슷한 형태이며, 모리스 카운터라는 확률적 알고리즘을 이용해서 데이터들의 엑세스 빈도를 계산하고, 감쇠기간과 결합하여 일정 시간이 지나면 카운터를 감소시키도록 한다. Redis는 총 24비트의 공간을 갖고 있다. 이 24비트중 LRU time을 체크하는데 16비트를 사용하고 나머지 8비트는 LFU data의 카운터를 체크하는데 사용한다. LFU의 경우 최대 8비트..
redis-stat 설치방법 redis-stat를 설치하기 전에 Ruby를 설치 해야한다 1. Ubuntu sudo apt-get install ruby sudo apt-get install ruby-dev sudo gem update //sudo gem update를 하다 ERROR: Failed to build gem native extension 라는 에러가 발생할시 //apt-get install ruby-dev 로 해결 2. Redis-stat 설치 sudo gem install redis-stat //redis-stat 설치 3.Redis-stat 사용방법 $ Redis-stat를 cmd 창으로 보는 방법 redis-stat localhost:6379 5 //5초 간격으로 redis의 상태를 받는다 redis-stat l..
Redis - 메모리 정책 , 메모리 크기 설정 방법 #Redis-cli로 접속 config set maxmemory 4mb //4mb로 변경 하고 싶을 경우 config set maxmemory 10g //10g로 변경하고 싶을 경우 config set maxmemory-policy allkeys-lru //lru 알고리즘으로 설정할 경우 config set maxmemory-policy allkeys-lfu //lfu 알고리즘으로 설정할 경우 config set maxmemory-samples 3 //메모리 샘플을 3개 사용함