Post

4주3일차_redis_데이터_타입_활용

4주3일차_redis_데이터_타입_활용

필기 가자

  • 이를 활용하여 문자열로 간단한 캐싱 구현, 리스트로 작업 대기열 생성, 해시를 통한 키-값 관리, 정렬된 집합을 활용한 리더보드 구현 등을 실습합니다. 또한, 데이터 입력, 조회, 삭제, 만료 설정과 같은 redis의 기본 명령어를 다루며, KEYS, DBSIZE, FLUSHALL 등의 관리 명령어 사용법을 익힙니다.

1.2 List (리스트)

  • 특징:
    • 삽입 순서를 유지하며, FIFO(선입선출) 또는 LIFO(후입선출) 방식으로 데이터 처리 가능.
    • 하나의 Key에 여러 값을 저장.
    • 리스트 길이에 제한이 없어 큰 데이터를 처리 가능.

    작업 대기열 생성: jedis.rpush(“tasks1”, “Task1”, “Task2”, “Task3”); // Task1 -> Task2 -> Task3 순서로 저장

jedis.lpush(“tasks2”, “Task1”, “Task2”, “Task3”); // Task3 -> Task2 -> Task1 순서로 저장

1.4 Hash (해시) 특징: 하나의 Key 아래에 여러 필드-값(Field-Value) 쌍을 저장. 데이터 저장 공간 효율적 사용. 필드 단위로 읽기/쓰기 가능. 용도: 객체나 레코드 저장. 사용자 속성 관리. 예제: 사용자 프로필 저장: jedis.hset(“userId”, “name”, “John”); jedis.hset(“userId”, “email”, “john@example.com”); jedis.hset(“userId”, “age”, “30”); ​ 필드 단위 조회: String userName = jedis.hget(“userId”, “name”); Map<String, String> userProfile = jedis.hgetAll(“userId”);

1.5 Sorted Set (정렬된 집합)

  • 특징:
    • 값(Value)과 점수(Score)를 저장하며, 점수를 기준으로 정렬.
    • 특정 범위 데이터를 효율적으로 조회 가능.
  • 용도:
    • 순위 관리(리더보드).
    • 시간 기준 정렬 데이터 관리.

예제:

2.2 리스트와 큐 구현 redis의 리스트(List)는 값의 순서를 유지하는 데이터 타입으로, 대기열(queue)나 스택(stack)을 구현할 때 유용합니다. 작업을 추가하고 처리하는 시나리오에서 사용할 수 있습니다. 코드 예제 (Java): public void redisListExample() { jedis.lpush(“taskQueue”, “Task1”, “Task2”, “Task3”);

1
2
3
4
5
6
7
8
9
10
// 대기열 길이 확인
long queueSize = jedis.llen("taskQueue");
log.info("queueSize : {}", queueSize);

// 작업 처리 (큐에서 꺼내기 - 선입선출)
String task = jedis.rpop("taskQueue");
log.info("Processing task : {}", task);

// 대기열 남은 작업 확인
log.info("taskQueue:{}", jedis.lrange("taskQueue", 0, -1));   }

3.2 데이터 삭제 및 만료 설정

  • 명령어 설명:
    • DEL key: 지정된 Key와 그 값을 삭제.
    • EXPIRE key seconds: 지정된 Key의 만료 시간을 설정(초 단위).

현재 데이터베이스 키 개수 확인: 명령어: DBSIZE ​ 출력 (예시): (integer) 2

Action Plan

  • 명령어 실습 시나리오 일부 작업해보기.

수업 내용 필기 정리.

This post is licensed under CC BY 4.0 by the author.