- RDB는 데이터를 안전하게 영구 저장하는 것이 주요 목적이지만, Redis는 주로 빠른 접근을 위한 캐시 및 일시적인 데이터 저장 용도로 사용됨
- 하나의 Redis DB 서버에서 다양한 목적의 DB를 분리시킬 수 있음
- 0 ~ 15까지의 총 16개의 DB가 존재한다.
Strings
- 데이터를 String 형태의 값으로 저장, 가장 일반적인 key - value 구조의 형태
- 관련 명령어
- 키 값을 설정: set key vlaue
- 키 값을 가져옴: get key
- NX 문법(if not exist)
- key 값이 존재하지 않는다면 값 setting
- set key value nx
- EX 문법(expiration)
- key 유지(만료) 시간 세팅
- set key값 value값 nx ex
- expire key값 3600 형식으로 별도 부여 가능
- TTL이라 부르기도 함, ttl key값 명령어를 통해 남은 만료시간 확인 가능
- 활용
Lists
- deque와 유사한 구조로 리스트 앞, 뒤에서 push, pop 가능, 리스트 중간에 데이터 삽입 불가
- 관련 명령어
- 데이터 추가: lpush key value(left), rpush key value(right)
- 데이터 추출: lpop key, rpop key
- 데이터 개수 조회: llen key(list length)
- expire 설정 가능, ttl로 남은 시간 조회할 수 있음
- 활용
Sets
- 순서가 없고 중복이 없는 자료 구조
- 관련 명령어
- 집합에 멤버 추가: sadd key value
- 집합의 모든 멤버 반환: smemebers key
- 집합의 멤버 개수 반환: scard key (cardinality)
- 특정 멤버 삭제: srem key value
- 활용
- 매일 방문자 수 계산
- 좋아요 수 중복없이 집계
Sorted Sets(zset)
- 순서가 있고 중복이 없는 자료 구조
- 정렬의 기준이 되는 score를 가지고 있는 set
- 관련 명령어
- 집합에 멤버 추가: zadd key score value
- 특정 멤버 삭제: zrem key value
- 특정 멤버의 위치 정보 반환: zrank key value(오름차순 기준)
- score기준 오름차순 조회: zrank key 0 -1 (처음부터 끝까지)
- score기준 내림차순 조회: zrevrange key 0 -1
- range명령어 사용 시 제일 마지막에 withscores를 붙이면 score까지 함께 반환
- 새로운 값을 추가 시 중복값이라면 나중값이 우선시되어 먼저 들어값을 덮어쓴다.
- 활용
- 주식, 코인 등의 실시간 시세정보 또는 게임 등의 사용자의 점수나 순위를 관리
- 최근 살펴본 상품
Hashes
- value의 값이 map형태인 자료 구조
- hash는 map형식의 자료 구조를 활용해 특정 데이터만 수정/삭제 용이
- 관련 명령어
- hset key key value
- hget key key
- hgetall key
- hincrby key key (특정 요소값의 값을 증가/감소 시킬 경우, 숫자는 내부적으로 숫자로 처리)
- 활용
- 빈번히 변경될 가능성이 있는 객체 형식의 데이터 캐싱
출처 - 개발자라면 알아야 할 Redis 기본