添加first缓存，空间换时间