Expand description
基于 moka 的内存缓存层。
仅在启用 server feature 时编译,为文章列表、标签、单篇文章、统计信息、
评论、会话用户以及搜索结果提供按键缓存与失效能力。
缓存使用 std::sync::LazyLock 全局实例,按不同业务数据设置独立的 TTL。
Structs§
- Cache
Stat Snapshot - 缓存统计快照项(序列化给前端展示)。
- Cache
Stats - 单个缓存的命中/未命中计数。用 AtomicU64 在 get_* 路径上记录。
Enums§
- Cache
Key - 统一的缓存键枚举,每个变体对应一类可缓存数据。
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§
- Comment
List Cache - 评论列表缓存类型。
- Feed
Cache - Feed 条目列表缓存类型(RSS / JSON Feed 共用)。
- Friend
Links Cache - 友链列表缓存类型。
- Post
List Cache - 文章列表缓存类型,值为(文章列表,总数)。
- Post
Stats Cache - 文章统计缓存类型。
- Search
Cache - 搜索结果缓存类型。
- Session
Cache - 会话用户缓存类型。
- Single
Post Cache - 单篇文章缓存类型。
- TagList
Cache - 标签列表缓存类型。