页面打开时加载速度达到了惊人的6s乃至10s,经过对接口的排查,发现两个接口数据量极大,为了解决加载过慢的问题,采取缓存进行优化。
在使用缓存前,通常要考虑缓存的命中和缓存的更新策略。如果缓存命中率太低,无法达到优化的效果,而如果缓存更新频率过高,不考虑清楚更新策略或者未更新往往会导致缓存中数据与实际数据不符。
在进行缓存添加时,考虑到一些固有的poi详情数据是极少甚至几乎不更新,数据长度虽不大,但是请求量很高,所以采用memcache将poi详情数据缓存,并设置1d左右的失效时间;对于画册图片等需要向额外服务器rpc请求的数据,也采取memcache进行缓存,并设置7d的失效(考虑到画册等更新频率更低或者更新影响不大);对于庞大的ugc数据,使用redis进行缓存,时效时间1d左右。
经过以上缓存处理,页面加载速度稳定在了2s左右。对于以上配置,只有redis考虑了缓存更新,在ugc有了更改后,会失效当前redis,其余配置更新较少和影响问题,并未考虑更新。