[241128 TIL]
프로젝트 관리 심화
인메모리 저장소 및 캐싱
- Redis
Redis 명령어
String
- 가장 기본적인 자료형, Redis가 Java의 Map<String, String>처럼 동작한다고 생각하면서 접근하면 편함
- 저장할 수 있는 최대 크기는 512MB
- GET, SET
- SET <key> <value>: key에 value 문자열 데이터를 저장, "으로 공백 구분
- GET <key>: key에 저장된 문자열 반환
- INCR, DECR
- INCR key: key에 저장된 데이터를 1 증가
- DECR key: key에 저장된 데이터를 1 감소
- MSET, MGET
- MSET key value [key value …]: key value의 형태로 주어진 인자들을 각 key에 value를 저장
- MGET key [key]: 주어진 모든 key에 해당하는 데이터를 반환.
List
- 여러 문자열 데이터를 Linked List의 형태로 보관하는 자료형
- 스택 또는 큐 처럼 사용
- Java의 Map<String, List<String>> 형태
- LPUSH, RPUSH, LPOP, RPOP
- LPUSH key value: key에 저장된 리스트의 앞쪽에 value를 저장
- RPUSH key value: key에 저장된 리스트의 뒤쪽에 value를 저장
- LPOP key: key에 저장된 리스트의 앞쪽에서 값을 반환 및 제거
- RPOP key: key에 저장된 리스트의 뒤쪽에서 값을 반환 및 제거
- LLEN, LRANGE
- LLEN key: key에 저장된 리스트의 길이를 반환
- 없는 Key를 대상으로 하면 0
- 다른 자료형을 저장한 Key를 대상으로 하면 오류 발생
- LRANGE key start end: key의 start부터 end까지 원소들을 반환
- end가 실제 길이를 벗어나도 오류가 발생 X
- start > end일 경우 빈 결과 반환
- 음수의 경우 리스트의 뒤에서부터 데이터를 가져옴
- LLEN key: key에 저장된 리스트의 길이를 반환
Set
- 문자열의 집합
- 중복값 X, 순서 X
- SADD, SREM, SMEMBERS, SISMEMBER, SCARD
- SADD key value: key에 저장된 집합에 value를 추가
- SREM key value: key에 저장된 집합의 value를 제거
- SMEMBERS key: key에 저장된 집합의 모든 원소를 반환
- SISMEMBER key value: key에 저장된 집합에 value가 존재하는지 반환
- SCARD key: key에 저장된 집합의 크기를 반환
- SINTER, SUNION, SINTERCARD
- SINTER key1 key2: key1과 key2에 저장된 집합들의 교집합의 원소들을 반환
- SUNION key1 key2: key1과 key2에 저장된 집합들의 합집합의 원소들을 반환
- SINTERCARD number key1 [key2 ...]: number개의 key에 저장된 집합들의 교집합의 크기를 반환
Hash
- Field - Value 쌍으로 이뤄진 자료형
- Hash 데이터를 가져오기 위해 Key를 사용, 이후 다시 Key에 저장된 Hash 데이터에 Field - Value 쌍을 넣어주는 형식으로 동작
- Redis 전체가 Map 이라면 Hash는 Map<String, Map<String, String>>의 형식
- HSET, HGET, HMGET, HGETALL, HKEYS, HLEN
- HSET key field value [field value]: key의 Hash에 field에 value를 넣음. 한번에 여러 field - value 쌍을 넣어줄 수 있음
- HGET key field: key에 저장된 Hash의 field에 저장된 value를 반환. 없는 field의 경우 null.
- HMGET key field [field]: key에 저장된 Hash에서 복수의 field에 저장된 value를 반환.
- HGETALL key: key에 저장된 Hash에 저장된 field - value를 전부 반환.
- HKEYS key: key에 저장된 Hash에 저장된 field를 전부 반환
- HLEN key: key에 저장된 Hash에 저장된 field의 갯수를 반환
Sorted Set
- 이름처럼 정렬된 집합
- 기본적으로 Set과 동일하게, 유일한 값들만 유지하지만 여기에 더해 각 값들에 score라고하는 실수를 함께 보관
- 데이터를 가져올 때, score를 바탕으로 정렬하여 값들을 가져올 수 있음
- ZADD, ZINCRBY, ZRANK, ZRANGE, ZREVRANK, ZREVRANGE
- ZADD key score member [score member ...]: key의 Sorted Set에 score를 점수로 가진 member를 추가, 이미 있는 member의 경우 새로운 score를 설정
- ZRANK key member: key의 Sorted Set의 member의 순위를 오름차순 기준으로 0에서 부터 세서 반환
- ZRANGE key start stop: key의 Sorted Set의 member들을 start 부터 stop 순위까지 오름차순 기준으로 반환
- ZREVRANK key member: key의 Sorted Set의 member의 순위를 내림차순 기준으로 0에서 부터 세서 반환
- ZREVRANGE key start stop: key의 Sorted Set의 member들을 start 부터 stop 순위까지 내림차순 기준으로 반환
- ZINCRBY key increment member: key의 Sorted Set의 member의 score를 increment 만큼 증가 (음수를 전달하면 감소)
그 외 공용 명령
- DEL, EXPIRE, EXPIRETIME
- DEL key: key(와 저장된 데이터)를 제거
- EXPIRE key seconds: key의 TTL(유효시각)을 seconds로 설정, seconds초가 지나면 key 제거
- EXPIRETIME key: key가 만료되는 시각을 Unix Timestamp로 반환
- KEYS *: 저장된 모든 Key 확인
- FLUSHDB: 모든 Key 제거

'[내일배움캠프] AI 를 활용한 백엔드 아카데미 심화 과정 > TIL' 카테고리의 다른 글
MSA 개인 프로젝트 (1) (1) | 2024.12.06 |
---|---|
캐싱(Caching), 캐싱의 필요성, 캐싱 전략 (1) | 2024.11.29 |
Docker (0) | 2024.11.27 |
QueryDSL (0) | 2024.11.26 |
MSA 프로젝트 (0) | 2024.11.25 |