# 缓存迁移总结 ## 问题发现 在检查缓存时发现了一个孤立的缓存目录: **位置:** `/Users/semsevens/Desktop/workspace/daily/1113/how_1121_v2/script/data_processing/cache/` **大小:** 105M(包含 26,931 个文件) ### 原因分析 这个孤立缓存目录的产生原因: 1. **相对路径问题**:早期版本的 `lib/text_embedding.py` 和 `lib/semantic_similarity.py` 使用相对路径 `cache/text_embedding/` 作为默认缓存目录 2. **工作目录依赖**:当从 `script/data_processing/` 目录运行脚本时,缓存会在当前工作目录下创建 3. **结果**:在 `script/data_processing/cache/` 下生成了大量缓存文件 ## 已执行的迁移操作 ### 1. 迁移孤立缓存到统一位置 ```bash # 合并 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. 验证无其他孤立缓存 ```bash 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` 中设置: ```bash export CACHE_ROOT=~/cache ``` 这确保了所有新的缓存都会统一存储在 `~/cache/` 目录下。 ### 2. 代码改进 - `lib/config.py` 提供统一的缓存路径管理 - 所有模块使用 `get_cache_dir()` 获取缓存路径 - 优先级:环境变量 > 代码设置 > 默认值 ### 3. 运行脚本的最佳实践 **推荐做法**: ```bash # 从项目根目录运行 cd /Users/semsevens/Desktop/workspace/daily/1113/how_1121_v2 python script/data_processing/your_script.py ``` **避免做法**: ```bash # 不要从 script/data_processing/ 目录运行 cd script/data_processing python your_script.py # 可能在当前目录创建缓存 ``` ## 验证步骤 如果想验证缓存配置是否正确: ```python 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 ``` ## 清理建议 定期检查缓存大小: ```bash # 查看缓存大小 du -sh ~/cache/*/ # 如果需要清理旧缓存 rm -rf ~/cache/text_embedding/* rm -rf ~/cache/semantic_similarity/* ``` ## 总结 ✅ **已完成:** - 发现并迁移了 105M 的孤立缓存 - 统一所有缓存到 `~/cache/` - 验证项目中无其他孤立缓存 - 确认环境变量配置正确 ✅ **已预防:** - 通过环境变量避免相对路径问题 - 通过 `lib/config.py` 统一管理缓存路径 - 文档说明最佳实践 🎯 **结果:** 所有缓存现在都统一存储在 `~/cache/` 目录下,不会再出现孤立缓存的问题。