1. 개요 및 문제 정의

슬랙과, 디스코드처럼 실시간 사용자상태 (접속중이면 초록불, 자리비움이면 노란불, 오프라인이면 검정불)이 들어오는 기능을 만들고싶었는데 사용자 상태라는게 계속바뀌고 중요한정보가 아닌데 DB에 계속 저장되는게 무겁고 꺼내오는거조차 시간이 걸릴수있다 그럼 인메모리 NoSql 레디스를 사용해보자

  1. 사용자 실시간 상태에 딱맞는 빠른 읽기/쓰기
  2. 휘발성 데이터라 RDB에 저장 하기 별로임

1. 의존성 추가

groovy
복사편집
// build.gradle.kts
implementation("org.springframework.boot:spring-boot-starter-data-redis")

2. 설정 (application.yml)

yaml
복사편집
spring:
  redis:
    host: localhost
    port: 6379

3. Bean 등록

java
복사편집
@Configuration
public class RedisConfig {
    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        return new LettuceConnectionFactory();
    }

    @Bean
    public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory cf) {
        return new StringRedisTemplate(cf);
    }
}


내프로젝트로 사용자 실시간 상태 , 워크스페이스 조회 캐싱 을해보자..

A. 로그인 시 사용자 정보 저장

B. Presence 기능 (Heartbeat → Active/Idle/Offline)

  1. 키 네임스페이스