CACHE_MIGRATION_SUMMARY.md 3.8 KB

缓存迁移总结

问题发现

在检查缓存时发现了一个孤立的缓存目录:

位置: /Users/semsevens/Desktop/workspace/daily/1113/how_1121_v2/script/data_processing/cache/

大小: 105M(包含 26,931 个文件)

原因分析

这个孤立缓存目录的产生原因:

  1. 相对路径问题:早期版本的 lib/text_embedding.pylib/semantic_similarity.py 使用相对路径 cache/text_embedding/ 作为默认缓存目录
  2. 工作目录依赖:当从 script/data_processing/ 目录运行脚本时,缓存会在当前工作目录下创建
  3. 结果:在 script/data_processing/cache/ 下生成了大量缓存文件

已执行的迁移操作

1. 迁移孤立缓存到统一位置

# 合并 text_embedding 缓存(26,931 个文件)
rsync -av script/data_processing/cache/text_embedding/ ~/cache/text_embedding/

# 合并 semantic_similarity 缓存
cp -R script/data_processing/cache/semantic_similarity/* ~/cache/semantic_similarity/

# 删除孤立缓存目录
rm -rf script/data_processing/cache/

2. 验证无其他孤立缓存

find /Users/semsevens/Desktop/workspace/daily/1113/how_1121_v2 -type d -name "cache"
# 结果:无输出,确认项目中已无其他孤立缓存目录

最终缓存状态

统一缓存位置:~/cache

~/cache/
├── text_embedding/          # 105M (26,981 files) - 向量相似度缓存
├── semantic_similarity/     # 122M (31,307 files) - 语义相似度缓存
├── data/                    # 1.5M - 数据缓存
│   ├── search/              # 搜索结果缓存
│   ├── detail/              # 详情数据缓存
│   └── tools_list/          # 工具列表缓存
└── xhs_blogger/            # 516K - 博主数据缓存

总缓存大小

  • text_embedding: 105M
  • semantic_similarity: 122M
  • data: 1.5M
  • xhs_blogger: 516K
  • 总计: ~229M

预防措施

1. 环境变量配置

已在 ~/.zshrc 中设置:

export CACHE_ROOT=~/cache

这确保了所有新的缓存都会统一存储在 ~/cache/ 目录下。

2. 代码改进

  • lib/config.py 提供统一的缓存路径管理
  • 所有模块使用 get_cache_dir() 获取缓存路径
  • 优先级:环境变量 > 代码设置 > 默认值

3. 运行脚本的最佳实践

推荐做法

# 从项目根目录运行
cd /Users/semsevens/Desktop/workspace/daily/1113/how_1121_v2
python script/data_processing/your_script.py

避免做法

# 不要从 script/data_processing/ 目录运行
cd script/data_processing
python your_script.py  # 可能在当前目录创建缓存

验证步骤

如果想验证缓存配置是否正确:

from lib.config import get_cache_root, get_cache_dir

# 检查缓存根目录
print(f"缓存根目录: {get_cache_root()}")
# 应输出: /Users/semsevens/cache

# 检查具体模块的缓存目录
print(f"text_embedding 缓存: {get_cache_dir('text_embedding')}")
# 应输出: /Users/semsevens/cache/text_embedding

print(f"semantic_similarity 缓存: {get_cache_dir('semantic_similarity')}")
# 应输出: /Users/semsevens/cache/semantic_similarity

清理建议

定期检查缓存大小:

# 查看缓存大小
du -sh ~/cache/*/

# 如果需要清理旧缓存
rm -rf ~/cache/text_embedding/*
rm -rf ~/cache/semantic_similarity/*

总结

已完成:

  • 发现并迁移了 105M 的孤立缓存
  • 统一所有缓存到 ~/cache/
  • 验证项目中无其他孤立缓存
  • 确认环境变量配置正确

已预防:

  • 通过环境变量避免相对路径问题
  • 通过 lib/config.py 统一管理缓存路径
  • 文档说明最佳实践

🎯 结果: 所有缓存现在都统一存储在 ~/cache/ 目录下,不会再出现孤立缓存的问题。