// 경로 캐시 저장 (TTL 5분)
pub async fn set_route(&self, key: &str, value: &str) -> redis::RedisResult<()> {
    let mut con = self.client.get_async_connection().await?;
    con.set_ex(key, value, 300).await
}

// 실시간 위치 저장 (TTL 30초)
pub async fn set_realtime(&self, key: &str, value: &str) -> redis::RedisResult<()> {
    let mut con = self.client.get_async_connection().await?;
    con.set_ex(key, value, 30).await
}

So what: 경로 캐시는 300초, 실시간 데이터는 30초 TTL로 분리했다

So why: 경로 데이터는 출발지/목적지가 같을 경우 바뀔 일이 없기에 호출을 길게 잡았고 실시간 지하철 데이터는 Kafka Producer가 30초마다 새 데이터를 발행하기에 TTL도 30초로 맞춰 1사이클을 맞췄다

 

use redis::{Client, AsyncCommands};

So what: Valkey를 Redis 클라이언트 라이브러리로 접근한다

So why: Valkey는 Redis 프로토콜과 완전히 호환된다. 별도 Valkey 전용 Rust 클라이언트 없이 redis-rs를 그대로 쓸 수 있게 해준다.

'Project > SSAFY2학기 특화 PJT' 카테고리의 다른 글

[BE] realtime.rs ( 실시간 데이터 )  (0) 2026.03.13
[BE] fare.rs ( 요금 정보 )  (0) 2026.03.13
[BE] kafka.rs ( Kafka 연동 )  (0) 2026.03.13
[BE] congestion.rs ( 혼잡도 AI )  (0) 2026.03.13
[BE] routes.rs ( TMAP API )  (0) 2026.03.13

+ Recent posts