Skip to main content

Module cache

Module cache 

Source
Expand description

基于 moka 的内存缓存层。

仅在启用 server feature 时编译,为文章列表、标签、单篇文章、统计信息、 评论、会话用户以及搜索结果提供按键缓存与失效能力。 缓存使用 std::sync::LazyLock 全局实例,按不同业务数据设置独立的 TTL。

Structs§

CacheStatSnapshot
缓存统计快照项(序列化给前端展示)。
CacheStats
单个缓存的命中/未命中计数。用 AtomicU64 在 get_* 路径上记录。

Enums§

CacheKey
统一的缓存键枚举,每个变体对应一类可缓存数据。

Constants§

TTL_COMMENTS 🔒
评论列表缓存 TTL:60 秒。
TTL_PENDING_COUNT 🔒
待审核评论数量缓存 TTL:10 秒,因管理后台需要较实时数据。
TTL_POST_LIST 🔒
文章列表缓存 TTL:60 秒。
TTL_POST_STATS 🔒
文章统计缓存 TTL:60 秒。
TTL_SEARCH 🔒
搜索结果缓存 TTL:10 秒。
TTL_SESSION 🔒
会话用户缓存 TTL:300 秒(5 分钟),短于 DB 会话过期时间。
TTL_SINGLE_POST 🔒
单篇文章缓存 TTL:600 秒。
TTL_TAG_LIST 🔒
标签列表缓存 TTL:300 秒。
TTL_TAG_POSTS 🔒
标签下文章列表缓存 TTL:120 秒。

Statics§

COMMENT_CACHE 🔒
全局评论列表缓存实例,最大容量 200。
COMMENT_STATS 🔒
FEED_CACHE 🔒
全局 Feed 条目缓存实例,最大容量 10(单键,20 篇全文条目)。
FEED_STATS 🔒
FRIEND_LINKS_CACHE 🔒
全局友链列表缓存实例,最大容量 50,TTL 与标签列表一致。
FRIEND_STATS 🔒
PENDING_COUNT_CACHE 🔒
全局待审核评论数量缓存实例,最大容量 10。
PENDING_COUNT_STATS 🔒
POST_LIST_CACHE 🔒
全局文章列表缓存实例,最大容量 100。
POST_LIST_STATS 🔒
POST_STATS_CACHE 🔒
全局文章统计缓存实例,最大容量 10。
POST_STATS_STATS 🔒
SEARCH_CACHE 🔒
全局搜索结果缓存实例,最大容量 200,TTL 10 秒。
SEARCH_STATS 🔒
SESSION_CACHE
全局会话用户缓存实例,最大容量 1000,TTL 5 分钟。
SESSION_STATS 🔒
SINGLE_POST_CACHE 🔒
全局单篇文章缓存实例,最大容量 200。
SINGLE_POST_STATS 🔒
TAG_LIST_CACHE 🔒
全局标签列表缓存实例,最大容量 50。
TAG_POSTS_CACHE 🔒
全局标签文章列表缓存实例,最大容量 100。
TAG_POSTS_STATS 🔒
TAG_STATS 🔒

Functions§

cache_stats
聚合所有缓存的统计快照(供 get_server_status 调用)。
get_comments_by_post
按文章主键读取评论列表缓存。
get_feed
读取 Feed 条目列表缓存。
get_friend_links
读取全部友链缓存(前台可见集)。
get_pending_count
读取待审核评论总数缓存。
get_post_by_slug
按 slug 读取单篇文章缓存。
get_post_list
读取文章分页列表缓存。
get_post_stats
读取文章统计缓存。
get_posts_by_tag
按标签读取文章列表缓存。
get_search_results
读取搜索结果缓存。
get_session_user
读取会话用户缓存。
get_tag_list
读取全部标签缓存。
get_total_published_posts
读取已发布文章总数缓存。
invalidate_all_comments
全量失效评论缓存(SQL 控制台兜底用:管理员直接改 comments 表时无法定向)。
invalidate_all_post_caches
清空所有文章相关缓存(列表、标签、单篇、统计、标签文章)。
invalidate_all_tags
清空所有标签缓存。
invalidate_comments_by_post
按文章主键失效评论列表缓存。
invalidate_feed
清空 Feed 条目缓存。
invalidate_for_post_write
文章写操作(创建/更新/删除/恢复/清空回收站)后的统一缓存失效序列。
invalidate_friend_links
清空友链缓存。
invalidate_pending_count
失效待审核评论总数缓存。
invalidate_post_by_slug
按 slug 失效单篇文章缓存。
invalidate_post_lists
清空所有文章分页列表缓存。
invalidate_post_metadata
失效文章「元数据」类缓存:列表、标签、统计、搜索结果、Feed。
invalidate_post_stats
清空文章统计缓存。
invalidate_posts_by_tag
按标签失效文章列表缓存。
invalidate_search_results
清空所有搜索结果缓存。
invalidate_session_user
失效指定会话用户缓存。
invalidate_tag_posts_for
按标签批量失效文章列表缓存。
normalize_search_key
规范化搜索查询键:trim、转小写、截断至 200 字符。
set_comments_by_post
按文章主键写入评论列表缓存。
set_feed
写入 Feed 条目列表缓存。
set_friend_links
写入全部友链缓存。
set_pending_count
写入待审核评论总数缓存。
set_post_by_slug
按 slug 写入单篇文章缓存,None 表示文章不存在。
set_post_list
写入文章分页列表缓存。
set_post_stats
写入文章统计缓存。
set_posts_by_tag
按标签写入文章列表缓存。
set_search_results
写入搜索结果缓存。
set_session_user
写入会话用户缓存。
set_tag_list
写入全部标签缓存。
set_total_published_posts
写入已发布文章总数缓存,文章列表部分置空以节省内存。

Type Aliases§

CommentListCache
评论列表缓存类型。
FeedCache
Feed 条目列表缓存类型(RSS / JSON Feed 共用)。
FriendLinksCache
友链列表缓存类型。
PostListCache
文章列表缓存类型,值为(文章列表,总数)。
PostStatsCache
文章统计缓存类型。
SearchCache
搜索结果缓存类型。
SessionCache
会话用户缓存类型。
SinglePostCache
单篇文章缓存类型。
TagListCache
标签列表缓存类型。