接口性能调优方案探索

以前咱们的电影详情一直采用从redis中读取数据,但QPS一直不高,用了30组redis服务器,采用一致性哈希算法去命中机器去连redis读取结果返回。由于redis取的次数问题及结果过大,一是同一次请求可能多个redisKey,由于key名不一样,所以形成要屡次一致性hash而且链接屡次才能取得结果,经过如下想法跟试验优化了下:redis

一、将屡次Redis查询的数据缓存到一台机器上,只一次读取,提升了一点QPS,但只是从之前的单台八百多到一千出头。算法

二、优化redis集群的分组,每一个主库下挂多个从库,提升了一点json

三、redis缓存服务器专门用来读取,只设置一台,不走一致性哈希,走一主N从架构,提升了些缓存

四、缓存一致性哈希结果,每次都要去根据配置文件去计算一致性哈希生成哈希环,而后经过key去查找命中,经过文件将一致性哈希的结果缓存起来,其中遇到了很多坑,包括unserialize的文件大于200K以后解不出来。生成哈希环的过程当中刚好一台服务器碰到并发比较高形成文件屡次写入没法json_decode状况。最后经过Yac跟一次写入的方式解决了这个问题服务器

五、将缓存结果直接存文件,经过文件的建立时间判断是否过时。架构

最后发现存文件比读redis缓存的qps高上不少不少,8核16G的标配服务器经过AB压测获得的结果从以前的六百多到了如今的两千五百多,提升了不少。并发

相关文章
相关标签/搜索