3. 缓存的设计