tdm_server_rust/cache/two_tier.rs
1//! Redis JSON 缓存读写工具
2//!
3//! 列表/统计类预序列化 JSON 缓存统一走此处:
4//!
5//! - 读:只查 Redis
6//! - 写:只写 Redis,带 TTL
7//!
8//! 失效通过 Redis 删除精确键或匹配前缀完成,不再维护本地副本。
9
10use crate::cache::redis_cache::RedisCache;
11use std::sync::Arc;
12
13/// Redis 读取:命中返回响应 JSON 字节。
14///
15/// ## 参数
16/// - `redis`: Redis 缓存客户端
17/// - `key`: 逻辑缓存键
18///
19/// ## 返回
20/// - `Some(bytes)`: Redis 命中
21/// - `None`: Redis 未命中或读取失败
22pub async fn get_json(redis: &RedisCache, key: &str) -> Option<Arc<Vec<u8>>> {
23 redis.get_json_bytes(key).await
24}
25
26/// Redis 写入:只写响应 JSON 字节。
27///
28/// ## 参数
29/// - `redis`: Redis 缓存客户端
30/// - `key`: 逻辑缓存键
31/// - `bytes`: 预序列化 JSON 字节
32/// - `ttl_secs`: Redis 过期秒数
33pub async fn set_json(redis: &RedisCache, key: &str, bytes: &[u8], ttl_secs: u64) {
34 redis.set_json_bytes_ttl(key, bytes, ttl_secs).await;
35}