Skip to main content

Module cache

Module cache 

Source
Expand description

基于 moka 的内存缓存层。

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

Macros§

record_hit_miss 🔒
记录缓存命中/未命中统计,返回原值。

Structs§

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

Enums§

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

Constants§

TTL_COMMENTS 🔒
评论列表缓存 TTL:60 秒。
TTL_IMAGE_CACHE_SETTINGS 🔒
图片磁盘缓存配置 TTL:60 秒。仅清理任务每小时读取一次,TTL 纯为 DB 兜底。
TTL_LOG_TARGETS 🔒
日志 target 去重列表缓存 TTL:60 秒。DISTINCT 全表扫不值得每开页面跑一次。
TTL_PENDING_COUNT 🔒
待审核评论数量缓存 TTL:10 秒,因管理后台需要较实时数据。
TTL_POST_LIST 🔒
文章列表缓存 TTL:60 秒。
TTL_POST_STATS 🔒
文章统计缓存 TTL:60 秒。
TTL_SEARCH 🔒
搜索结果缓存 TTL:10 秒。
TTL_SECURITY_SETTINGS 🔒
安全配置缓存 TTL:15 秒。安全相关(CSRF/cookie/代理/会话),面板修改后 需尽快全链路生效,TTL 仅作 DB 兜底而非主失效手段(面板保存会主动失效)。
TTL_SESSION 🔒
会话用户缓存 TTL:300 秒(5 分钟),短于 DB 会话过期时间。
TTL_SINGLE_POST 🔒
单篇文章缓存 TTL:600 秒。
TTL_SITE_SETTINGS 🔒
站点配置缓存 TTL:600 秒。配置极少变更,但前台页脚每页读取,缓存兜底 DB。
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 🔒
IMAGE_CACHE_SETTINGS_CACHE 🔒
全局图片磁盘缓存配置实例(单键 ImageCacheSettings),最大容量 2。
LOG_TARGETS_CACHE 🔒
全局日志 target 去重列表缓存实例(单键 LogTargets),最大容量 2。
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 🔒
SECURITY_SETTINGS_CACHE 🔒
全局安全配置缓存实例(单键 SecuritySettings),最大容量 2。
SESSION_CACHE
全局会话用户缓存实例,最大容量 1000,TTL 5 分钟。
SESSION_STATS 🔒
SINGLE_POST_CACHE 🔒
全局单篇文章缓存实例,最大容量 200。
SINGLE_POST_STATS 🔒
SITE_SETTINGS_CACHE 🔒
全局站点配置缓存实例(单键 SiteSettings),最大容量 2。
SITE_SETTINGS_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_image_cache_settings
读取图片磁盘缓存配置缓存。
get_log_targets
读取日志 target 去重列表缓存。
get_pending_count
读取待审核评论总数缓存。
get_post_by_slug
按 slug 读取单篇文章缓存。
get_post_list
读取文章分页列表缓存。
get_post_stats
读取文章统计缓存。
get_posts_by_tag
按标签读取文章列表缓存。
get_search_results
读取搜索结果缓存。
get_security_settings
读取安全配置缓存。
get_session_user
读取会话用户缓存。
get_site_settings
读取站点配置缓存。
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_image_cache_settings
失效图片磁盘缓存配置缓存(面板保存后调用)。
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_security_settings
失效安全配置缓存(面板保存后调用)。
invalidate_session_user
失效指定会话用户缓存。
invalidate_site_settings
失效站点配置缓存。
invalidate_tag_posts_for
按标签批量失效文章列表缓存。
normalize_search_key
规范化搜索查询键:trim、转小写、截断至 200 字符。
set_comments_by_post
按文章主键写入评论列表缓存。
set_feed
写入 Feed 条目列表缓存。
set_friend_links
写入全部友链缓存。
set_image_cache_settings
写入图片磁盘缓存配置缓存。
set_log_targets
写入日志 target 去重列表缓存。
set_pending_count
写入待审核评论总数缓存。
set_post_by_slug
按 slug 写入单篇文章缓存,None 表示文章不存在。
set_post_list
写入文章分页列表缓存。
set_post_stats
写入文章统计缓存。
set_posts_by_tag
按标签写入文章列表缓存。
set_search_results
写入搜索结果缓存。
set_security_settings
写入安全配置缓存。
set_session_user
写入会话用户缓存。
set_site_settings
写入站点配置缓存。
set_tag_list
写入全部标签缓存。
set_total_published_posts
写入已发布文章总数缓存,文章列表部分置空以节省内存。

Type Aliases§

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