重构缓存实现