본 문서는 트래픽 서비스(
TrafficRedisKeyFactory 및 관련 서비스) 기점으로 Redis에 등록/관리되는 Key들을 정리한 문서입니다.
(노션 페이지에 바로 복사/붙여넣기하여 표 형태로 확인하실 수 있습니다.)
| Key Name | Type | Fields / Values | TTL | Description |
|---|---|---|---|---|
policy:{policyId} |
Hash | value: "1" (Active) / "0" (Inactive)version: 타임스탬프 |
- | 정책 활성화 상태 보관 (CAS 반영용 version 포함) |
policy_bootstrap_version |
String | 마지막 성공 부트스트랩 epochMillis |
- | DB->Redis 스냅샷 동기화 최종 버전 기록 |
policy:bootstrap:lock |
String | 소유자 식별자 (예: startup:{uuid}) |
30s | 부트스트랩 동시 실행 방지를 위한 분산락 키 |
| Key Name | Type | Fields / Values | TTL | Description |
|---|---|---|---|---|
line_policy_ready:{lineId} |
String | "1" | 60s (기본) | 라인 정책 스냅샷이 Redis에 로드되었음을 증명하는 플래그 |
line_policy_hydrate_lock:{lineId} |
String | 소유자 식별자 | 3000ms | Hydrate 중복 호출 방지를 위한 단기 분산락 키 |
| Key Name | Type | Fields / Values | TTL | Description |
|---|---|---|---|---|
daily_total_limit:{lineId} |
Hash | value: 한도량(Byte) 또는 -1 (무제한/비활성)version: 타임스탬프 |
- | 일별 총 데이터 한도 |
monthly_shared_limit:{lineId} |
Hash | value: 한도량(Byte) 또는 -1version: 타임스탬프 |
- | 월별 공유 데이터 한도 |
app_data_daily_limit:{lineId} |
Hash | limit:{appId}: 한도량(Byte) 또는 -1version: 타임스탬프 |
- | 앱별 일간 데이터 한도 |
app_speed_limit:{lineId} |
Hash | speed:{appId}: 정규화된 속도값 또는 -1version: 타임스탬프 |
- | 앱별 차단/제어 속도 제한 |
app_whitelist:{lineId} |
Set | {appId} (String) |
- | 화이트리스트에 등록된 앱 ID 목록 |
immediately_block_end:{lineId} |
Hash | value: 차단 종료 시각(epochSec) 또는 0version: 타임스탬프 |
- | 즉시 차단 정책 종료 일시 |
repeat_block:{lineId} |
Hash | day:{dayOfWeek}:{id}: {startSec}:{endSec}version: 타임스탬프 |
- | 요일별 반복 차단 스케줄 |
| Key Name | Type | Fields / Values | TTL | Description |
|---|---|---|---|---|
remaining_indiv_amount:{id}:{yyyymm} |
Hash | amount: 남은 잔량(Byte)is_empty: "1"(소진)/"0"(미소진)qos: 정규화된 큐오에스 값 |
익월 10일 | 개별(Line) 데이터 남은 데이터량 관리 |
remaining_shared_amount:{id}:{yyyymm} |
Hash | amount: 남은 잔량(Byte)is_empty: "1"(소진)/"0"(미소진)qos: 정규화된 큐오에스 값 |
익월 10일 | 공유(Family) 단위 남은 데이터량 관리 |
daily_total_usage:{lineId}:{yyyymmdd} |
String | 누적 차감량(Byte) | - | 회선의 일간 총 사용량 캐싱 |
monthly_shared_usage:{id}:{yyyymm} |
String | 누적 차감량(Byte) | - | 회선의 월별 공유 한도 내 사용량 캐싱 |
daily_app_usage:{lineId}:{yyyymmdd} |
Hash | {appId}: 누적 사용량(Byte) |
- | 각 앱별 일별 사용량 캐싱 |
qos:{lineId} |
Hash | qos: QoS 설정 속도값 | - | QoS 우회나 개별 설정 보관/접근 용도 |
| Key Name | Type | Fields / Values | TTL | Description |
|---|---|---|---|---|
speed_bucket:individual:{id}:{epochSec} |
String | 초당 누적 차감량(Byte) | 15s | 개인 풀 초단위 차감량 적재 버킷 (리필 계산용) |
speed_bucket:shared:{num}:{epochSec} |
String | 초당 누적 차감량(Byte) | 15s | 공유 풀 초단위 차감량 적재 버킷 (리필 계산용) |
| Key Name | Type | Fields / Values | TTL | Description |
|---|---|---|---|---|
dedupe:run:{traceId} |
String | 상태코드 (CLAIMED, DONE) |
60s | In-flight 메시지 처리 시 동시성 제어 / 중복 커밋 선점 키 |
refill:idempotency:{uuid} |
String | "1" (또는 원본 uuid 값) | 동적계산 | DB 리필 보상/갱신 프로세스 1회 실행 보장용 멱등키 (Lua 연동) |
usage_delta:replay:idempotency:{id} |
String | 상태 및 선점 증명값 | - | MQ Replay 중 동일 페이로드 재적용을 방어하기 위한 멱등키 |
indiv_hydrate_lock:{lineId} |
String | 소유자 식별자 | 단기방어 | 개별 데이터 Hydrate 1회만 수행되도록 막는 분산락 |
shared_hydrate_lock:{familyId} |
String | 소유자 식별자 | 단기방어 | 공유 데이터 Hydrate 1회만 수행되도록 막는 분산락 |
indiv_refill_lock:{lineId} |
String | 소유자 식별자 | 단기방어 | 개별 데이터 DB 리필 부하를 막는 단기 분산락 |
shared_refill_lock:{familyId} |
String | 소유자 식별자 | 단기방어 | 공유 데이터 DB 리필 부하를 막는 단기 분산락 |