Redis 기초 안까먹기

minseok·2023년 12월 14일

무엇이 key고 무엇이 value일까

처음에는 혼돈이 있었는데 Redis API 예시를 보면 'command key field value' 이렇게 나오면 뭐가 key인지 햇갈렸다.

key + collection 으로 보는게 더 이해하기 쉽다.

  • strings
    SET key1 value
  • lists
    LPUSH key1 value1 value2 ...
  • sets
    SADD key1 value
  • hashes
    HADD key1 feild value

key1의 자리가 Redis에서 말하는 Key이며 뒤에 나오는 값들이 Redis에서 말하는 value다. (컬렉션에 따라서 다르게 표현)






Redis API는 "컬렉션 이니셜 + 동작"으로 작명

  1. List 오퍼레이션 -> LPUSH, LSET
  2. Set 오퍼레이션 -> SADD, SREM
  3. Hashes 오퍼레이션 -> HSET, HGET
  4. String 오퍼레이션 -> SET, GET, DEL... (예외 케이스)






컬렉션 특징, 활용

Strings : 가장 기본 데이터 타입, 카운팅 활용
Bitmaps : Bit단위 연산 가능 데이터 공간 절약에 용이,카운팅 활용
Lists : 큐로 활용하기 좋다.
Hashes : field - value 쌍
Sets : 중복되지 않은 문자열
Sorted Sets: 중복되지 않으며 score순으로 정렬
Streams : Log 저장에 좋은 구조






중복된 key의 삽입은 어떻게 될까?

이전 key의 value는 덮어쓰기 처리된다.
확인이 필요하다면 EXISTS KEY로 확인하기






Key Convention

Key에 포함되는 구분자로 " : " 콜론을 많이 사용하며 어떤 Redis GUI 클라이언트 앱에서는 콜론을 사용해야만 Key를 시각적으로 잘 쪼개서(?) 나눠주기도 한다.

특별히 콜론을 사용하면 인덱스가 " : "로 구분해서 걸리거나 그런 것은 없고 단순히 선호도 차이다.






멀티 스레드에 안전한 카운팅

String 자료구조의 INCR을 사용하기
요점은 Redis는 요청에 대하여 절차적으로 일을 처리하고 증감 연산을 하는 API를 사용하면 된다.
BitMaps를 활용하면 메모리도 아낄 수 있다.

profile
즐겁게 개발하기

0개의 댓글