Skip to main content

tdm_server_rust/cache/
mod.rs

1//! 应用级缓存层 (Cache Layer)
2//!
3//! 基于 Redis 的统一缓存,减少数据库查询并支持多实例共享:
4//!
5//! | 缓存 | 用途 |
6//! |------|------|
7//! | [`AuthSnapshotCache`] | 鉴权用组员快照(ID→Member) |
8//! | [`MangaTranNameCache`] | 漫画译名/原名 ID→名称映射 |
9//! | [`MemberAllCache`] | 全量组员列表缓存 |
10//! | [`MemberEpisodePageCache`] | 组员话数分页 JSON 缓存 |
11//! | [`MemberWorkbenchCache`] | 组员工作台 JSON 缓存 |
12//! | [`EpisodeTasksCache`] | 待做稿件列表缓存 |
13//! | [`MemberTaskCountsCache`] | 组员任务计数缓存 |
14//! | [`PendingMangaTasksCache`] | 待发布漫画分页缓存 |
15//! | [`ListPageJsonCache`] | 漫画/话数/藏宝处分页 JSON 缓存 |
16//! | [`CollectListPageCache`] | 组员收藏列表分页 JSON 缓存 |
17//! | [`EpisodeStatisticsCache`] | 话数统计接口 JSON 缓存 |
18//! | [`StationedMangasCache`] | 组员常驻漫画列表缓存 |
19//! | [`RssFileLock`] | RSS 文件 per-file 互斥写锁 |
20
21mod auth_snapshot_cache;
22mod collect_list_cache;
23mod episode_statistics_cache;
24mod invalidate;
25mod list_page_json_cache;
26mod manga_name_cache;
27mod member_all_cache;
28mod member_episode_cache;
29mod member_workbench_cache;
30pub mod redis_cache;
31mod rss_file_lock;
32mod stationed_mangas_cache;
33mod task_tracking_cache;
34pub mod two_tier;
35
36pub use auth_snapshot_cache::{
37    get_auth_snapshot_cached, invalidate_auth_snapshot, new_auth_snapshot_cache, AuthSnapshotCache,
38};
39pub use collect_list_cache::{
40    collect_list_cache_key, get_collect_list_json_cached, invalidate_collect_list,
41    new_collect_list_page_cache, set_collect_list_json_cached, CollectListPageCache,
42};
43pub use episode_statistics_cache::{
44    get_member_statistics_json_cached, get_statistics_list_json_cached,
45    invalidate_episode_statistics, member_statistics_cache_key, new_episode_statistics_cache,
46    set_member_statistics_json_cached, set_statistics_list_json_cached, EpisodeStatisticsCache,
47};
48pub use invalidate::{
49    on_author_or_magazine_renamed, on_episode_mutated, on_manga_mutated, on_member_mutated,
50    on_station_mutated,
51};
52pub use list_page_json_cache::{
53    get_list_page_json_cached, invalidate_magazine_manga_caches, invalidate_manga_episode_caches,
54    invalidate_manga_page_caches, invalidate_member_page_caches, invalidate_uploaded_submit_caches,
55    magazine_manga_cache_key, manga_episode_page_cache_key, manga_episode_simple_cache_key,
56    manga_page_cache_key, member_page_cache_key, new_list_page_json_cache,
57    set_list_page_json_cached, set_result_json_cached, uploaded_submit_cache_key,
58    ListPageJsonCache,
59};
60pub use manga_name_cache::{
61    cache_key, get_manga_ori_names_cached, get_manga_tran_names_cached, invalidate_manga_names,
62    new_manga_tran_name_cache, set_manga_ori_names_cached, set_manga_tran_names_cached,
63    MangaTranNameCache,
64};
65pub use member_all_cache::{
66    get_member_all_cached, get_member_all_json_cached, invalidate_member_all, member_all_cache_key,
67    new_member_all_cache, set_member_all_cached, MemberAllCache, MemberAllCacheEntry,
68};
69pub use member_episode_cache::{
70    get_member_episode_json_cached, invalidate_member_episodes, member_episode_cache_key,
71    new_member_episode_page_cache, set_member_episode_json_cached, MemberEpisodePageCache,
72};
73pub use member_workbench_cache::{
74    get_workbench_overview_json_cached, get_workbench_tasks_json_cached,
75    invalidate_all_member_workbenches, invalidate_member_workbench,
76    member_workbench_overview_cache_key, member_workbench_tasks_cache_key,
77    new_member_workbench_cache, set_workbench_overview_json_cached,
78    set_workbench_tasks_json_cached, MemberWorkbenchCache,
79};
80pub use redis_cache::RedisCache;
81pub use rss_file_lock::RssFileLock;
82pub use stationed_mangas_cache::{
83    get_stationed_mangas_cached, get_stationed_mangas_json_cached, invalidate_stationed_mangas,
84    load_stationed_mangas, new_stationed_mangas_cache, set_stationed_mangas_cached,
85    set_stationed_mangas_json_cached, stationed_mangas_cache_key, StationedMangasCache,
86};
87pub use task_tracking_cache::{
88    get_episode_tasks_cached, get_episode_tasks_json_cached, get_member_task_counts_cached,
89    get_member_task_counts_json_cached, get_pending_manga_tasks_cached, invalidate_task_tracking,
90    new_episode_tasks_cache, new_member_task_counts_cache, new_pending_manga_tasks_cache,
91    pending_manga_cache_key, set_episode_tasks_cached, set_member_task_counts_cached,
92    set_pending_manga_tasks_cached, EpisodeTasksCache, EpisodeTasksCacheEntry,
93    MemberTaskCountsCache, MemberTaskCountsCacheEntry, PendingMangaTasksCache,
94};