// 경로 캐시 저장 (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 |
