上一节,我们介绍了图片存储方案,对各种规格的图片都作了很好的处理,本节我们介绍如何加快接口的访问速度。[揾食APP(三餐半)架构]
众所周知,移动网络3G/4G是存在不稳定性的,网络信号的切换,直接导致网络访问失败。
首先在APP端需要做的是,移动网络的检测,3G/4G/WIFI的切换,切换的瞬间网络会断开,导致网络连接失败,此时,要重新发出接口请求(重连机制)。
在服务端,每个接口请求,背后都有大量的业务逻辑处理(如:各数据表之间的关联查询,各业务的顺序处理等)。设想一种场景:查询商品详细信息,查出商品基本信息,查询库存,查询所属商家,客服,评论等。如果每次请求该接口,都做重复的查询,给服务器带来严重的负担。面对这种情况,我们可以从以下方面考滤:
1,在客户端请求该接口时,页面处理加载状态,但该接口请求很慢,用户等待的时间太长,造成用户体验不好。可以把这种情况拆分成几个接口来请求,如:请求基本信息,请求库存,请求评论等,这样每个接口的时间就更快,请求完了就马上展示。让用户先看到一部分信息。
2,在接口处作缓存 ,将不常改变的信息,如:商品基本信息,所属商家 等,在处理完成后,放进缓存,下次请求时,直接从缓存中取出结果,免去了后面一大堆的业务逻辑处理,从而提升访问速度。同时一部分经常变动的数据需要实时查询(如:库存等)。
图解常用的缓存服务:Redis和Memcached 都能实现该功能,推荐使用Redis , Redis支持更多的数据类型,及其它扩展功能,如:排序 ,消息队列等,除此之外,Redis还支持分布式。Redis 也可以作为NoSQL数据库来使用,Redis可分为多个不同的库,每个库的数据是相互独立的,同时数据还可以持久化。适用场景更广泛,在很多场景下,也可作为分布式session来使用。
详情参考Redis中文官方网站:http://www.redis.cn/
有任何问题可加入QQ群讨论:455892987
下一节:数据存储(关系数据库与NoSQL)
网友评论