500===Dev Database/Redis

Redis 초보자를 위한 완벽 가이드 🚀

블로글러 2024. 10. 30. 22:29

Redis 초보자를 위한 완벽 가이드 🚀

안녕하세요! 오늘은 많은 개발자들이 사랑하는 Redis에 대해 쉽고 재미있게 알아보겠습니다.

Redis가 뭔가요? 🤔

Redis는 "Remote Dictionary Server"의 약자로, 마치 컴퓨터의 RAM처럼 빠른 데이터 저장소입니다!

쉽게 설명하자면:

  • 냉장고(일반 DB)에서 음식을 꺼내는 것보다
  • 식탁(Redis)에 놓인 음식을 집어먹는 게 더 빠른 것과 같은 원리죠!

Redis의 특징 ⚡

  1. 엄청난 속도
    • 초당 수만 건의 읽기/쓰기 가능
    • 모든 데이터를 메모리에 저장하기 때문!
  2. 다양한 데이터 구조 지원
  3. - Strings: 일반 텍스트/숫자 - Lists: 줄 서있는 데이터 - Sets: 중복 없는 모음 - Hashes: 키-값 쌍의 모음 - Sorted Sets: 순서가 있는 Sets
  4. 영구 저장 가능
    • 메모리의 데이터를 디스크에 저장 가능
    • 서버가 꺼져도 데이터 안전!

실제 사용 예시 💻

1. 기본적인 문자열 저장/조회

SET name "홍길동"
GET name   // "홍길동" 출력

2. 숫자 증가/감소

SET visitors 0
INCR visitors   // 1로 증가
INCR visitors   // 2로 증가

3. 리스트 활용

LPUSH todoList "운동하기"
LPUSH todoList "코딩하기"
LRANGE todoList 0 -1   // 모든 할일 목록 조회

4. Java에서 사용하기

@Service
public class UserService {
    @Autowired
    private RedisTemplate<String, User> redisTemplate;

    public void saveUser(User user) {
        // 유저 정보를 1시간동안 캐시
        redisTemplate.opsForValue()
            .set("user:" + user.getId(), user, 1, TimeUnit.HOURS);
    }
}

Redis의 실제 활용 사례 🌟

1. 랭킹 시스템

ZADD gameScores 2500 "player1"
ZADD gameScores 3200 "player2"
ZADD gameScores 2900 "player3"

// 상위 3명 조회
ZREVRANGE gameScores 0 2

2. 실시간 방문자 수 카운팅

INCR visitors:2024-10-30
EXPIRE visitors:2024-10-30 86400  // 24시간 후 자동 삭제

3. 장바구니 기능

HMSET cart:123 "product1" 2 "product2" 1
HGETALL cart:123  // 장바구니 전체 조회

주의할 점 ⚠️

  1. 메모리 관리
    • 메모리는 비싸요! 꼭 필요한 데이터만 저장하기
    • TTL(Time To Live) 설정 잊지 마세요
  2. 단일 스레드
    • 긴 작업은 피하기
    • 한 번에 하나의 명령만 처리해요
  3. 백업 중요
    • AOF나 RDB 설정으로 데이터 보호하기

언제 Redis를 써야 할까요? 🤔

좋은 사용 예시:

  • 실시간 랭킹 보드
  • 세션 저장소
  • 캐시 서버
  • 실시간 채팅
  • 한시적 데이터 (임시 인증코드 등)

마치며 🎁

Redis는 마치 우리 집 부엌의 식탁같은 존재입니다. 자주 사용하는 것들은 냉장고(DB)에서 꺼내서 식탁(Redis)에 올려두면 더 빠르게 사용할 수 있죠!


더 자세한 내용이 궁금하시다면 댓글로 남겨주세요! 😊

728x90

'500===Dev Database > Redis' 카테고리의 다른 글

Implement Redis with Lettuce in Java  (0) 2024.06.22
Implement Redis with Jedis in Java  (0) 2024.06.22
Redis 소개  (0) 2024.06.21
Simple Redis Implementation  (0) 2024.06.20
Redis Introduced  (0) 2024.06.02