Sorted Set 1. 특징 unique string 데이터(member)를 score 정보로 정렬된 형태의 집합으로 저장할 때 씁니다. 같은 score 정보를 가진 member가 여러개 있다면, 문자열순(lexicograpically)으로 정렬합니다. Ranking: 높은 score 순으로 실시간 정렬을 가진 자료가 필요할 때 쓸 수 있습니다. Sliding-Window를 가진 Rate Limiter를 구현할 수 있습니다. 2. Commands ZADD 새로운 member를 score 값과 함께 추가한다. 이미 존재하는 member라면 score를 업데이트 한다. ZRANGE 주어진 Range에 해당하는 member들을 리턴한다. ZRANK 주어진 member의 rank를 리턴한다. Ranking은 ..
이전 글 Redis의 String형식에 이어서 이번에는 List와 Set형식에 대해 알아보고 실습해보겠습니다. Redis의 LIST 실습 1. Lists 특징 지정한 Key에 리스트를 저장할 수 있습니다. 왼쪽(Left)이 Head, 오른쪽(Right)이 Tail입니다. 리스트에 들어갈 수 있는 최대 갯수는 2^32 - 1 (4,294,967,295)개 입니다. Stack, Queue 등을 구현하는데 사용합니다. 2. Comands LPUSH 새 원소를 Head에 추가한다. RPUSH 새 원소를 Tail에 추가한다. LPOP Head의 원소를 지우고 리턴한다. RPOP Tail의 원소를 지우고 리턴한다. LRANGE 특정 길이, 개수 만큼 원소를 리턴한다. (ex. 리스트의 처음부터 마지막 까지의 원소를..
해당 글에서는 Redis의 자료 형식이 어떤것이 있는지 살펴보고 명령어를 cli환경을 통해서 실습 해보겠습니다. Redis의 Key Redis의 모든 자료구조는 Key-Value형식이며, 저장과 조회는 key를 기준으로 합니다. Key는 binary sequence로 binary-safe합니다. 즉, string이나 어떤 파일을 binary로 변환한 값이나 상관없이 key로 설정할 수 있습니다. (앞에서부터 byte단위로 비교 합니다.) key 설계와 관련해서 다음과 같은 것을 고려해야합니다. 너무 긴(큰) key값 피하기 (Avoid Long Key) key의 길이(크기)가 크다면, 메모리를 더 많이 차지할 뿐만 아니라, key 비교 연산 등에서도 비용이 많이 듭니다. key의 크기는 1K(1024by..
해당 글에서는 Redis에 대해 본격적으로 사용해보기 전에 Cache/CacheDB란 무엇이고 다양한 CacheDB중에 왜 Redis를 사용하는지를 알아보겠습니다. Cache란? Cache 란, 미래의 사용 될 데이터를 빠르게 조회할 수 있는 곳(물리적 장소 또는 소프트웨어로 구현된 위치)에 두고서 사용하는 것을 말합니다. 보통 원본 데이터는 다른 곳에 있고 그것으로부터 copy된 데이터가 Cache에 존재합니다. 주요 개념 Cache hit: 조회하는 데이터를 Cache에서 찾을 때 Cache miss:조회하는 데이터를 Cahe에서 찾지 못했을 때 Hit ratio(rate): access시도 횟수 대비 cache hit의 비율. 이 값이(상대적으로) 높으면 캐시가 Cost-Effective하다. 캐시..