코딩/sparta TIL
터미널로 Redis 조회 방법
americanoallday
2025. 5. 21. 10:42
✅ Docker로 Redis만 띄워놓은 경우
Redis CLI도 컨테이너 안에서 실행
docker exec -it [컨테이너명 or ID] redis-cli
컨테이너 목록 확인:
docker ps
예시:
docker exec -it redis-container redis-cli
✅ TTL 확인 방법 : 위의 커멘드 입력 후 아래 커멘드 입력
> -2 : 키값이 없다는 의미
> 595초 남았다는 의미
127.0.0.1:6379> TTL bookSearchRedis::SearchCache
(integer) -2
127.0.0.1:6379> TTL bookSearchRedis::SearchCache
(integer) 595
✅ RDB, AOF 설정 확인
127.0.0.1:6379> CONFIG GET appendonly
1) "appendonly"
2) "no" ← AOF 비활성화 상태
127.0.0.1:6379> CONFIG GET save
1) "save"
2) "3600 1 300 100 60 10000"
// 3600초(1시간) 동안 1개 이상 키 변경 시 디스크에 저장
// 300초(5분) 동안 100개 이상 키 변경 시 저장
// 60초 동안 10000개 이상 키 변경 시 저장
// 즉, 조건이 충족되면 .rdb 파일로 백업하지만, 조건 미충족 시 메모리에만 남고, Redis 재시작 시 휘발
✅ 전체 삭제 (모든 DB 데이터 제거)
127.0.0.1:6379> FLUSHALL
- Redis 서버의 모든 DB의 데이터가 삭제됩니다.
- 개발 환경에서 주로 사용.
- 주의: Redis가 여러 DB(기본적으로 16개)를 사용 중일 경우 전부 날아갑니다.
✅ 현재 선택된 DB만 삭제 (보통 DB 0 사용)
127.0.0.1:6379> FLUSHDB
- 현재 선택된 DB (기본은 0번)의 데이터만 삭제됩니다.
- 다른 DB 번호의 데이터는 그대로 유지됩니다.
💡 특정 키만 삭제하고 싶다면?
127.0.0.1:6379> DEL <key 이름>
예:
127.0.0.1:6379> DEL bookSearchRedis::SearchCache
🧼 TTL 확인하고 만료 기다리는 것도 가능
127.0.0.1:6379> TTL bookSearchRedis::SearchCache
- -1이면 TTL 없음 (영구)
- -2면 이미 만료됨
- 양수면 남은 초(seconds)
필요하면 FLUSHALL을 도커 명령어로도 날릴 수 있어요:
docker exec -it <redis-container-name> redis-cli FLUSHALL
컨테이너 이름은 보통 redis거나 docker ps로 확인 가능합니다.
Redis의 ZSet(정렬된 집합) 구조 사용시, 값을 확인하려면 ZRANGE나 ZREVRANGE를 사용
✅ 인기 검색어 값 조회 (점수 포함)
ZREVRANGE popular_keywords 0 -1 WITHSCORES
- ZREVRANGE는 점수가 높은 순으로 정렬된 결과
- 0 -1은 전체 범위
- WITHSCORES를 붙이면 검색어 + 점수(빈도) 같이 나옵니다
✅ 점수 없이 값만 조회
ZREVRANGE popular_keywords 0 -1
✅ 특정 키워드의 점수 조회
ZSCORE popular_keywords "검색어"
예:
ZSCORE popular_keywords "java"
✅ Redis 클라이언트 없이 Redis 데이터 확인하고 싶다면?
대체 방법으로 Spring에서 RedisTemplate을 이용한 테스트 코드나 API 만들어서 값을 꺼낼 수도 있음:
@GetMapping("/test/zset")
public Set<ZSetOperations.TypedTuple<String>> getZSet() {
return redisTemplate.opsForZSet().reverseRangeWithScores("popular_keywords", 0, 9);
}