上一篇说到我用StackExchange.Redis封装包连接redis,1000个访问量用了3分钟,一开我以为是这个插件的兼容性不好,我搜了网上大量资料,再怎么也一秒钟可以处理几百个请求吧。
在我的调试下,我优化了redis数据库,将秒杀表的商品进行分表存储,我考虑到秒杀一般是分期进行的,一期的商品数量也不会很多。就比如我秒杀表放在redis里面,然后将里面的每个商品当一个表分别存储在redis里面,如下图。
上面4个都是第五个表的商品,这样有什么好处呢,在进行秒杀的时候,需要对相应商品进行秒杀,也就是数量减一操作。第一,商品数量越多,对kg_kill_good1表的访问压力就大,第二,对于不同用户秒杀不同商品都是在操做这个表,首先要将这个表get出来,然后需要for或foreach得到其中单个商品,然后再进行修改,这样大大的增加了秒杀环节的逻辑。
所以我进行了分表储存,结果还是很棒的,1000个数据用了2分10秒,快了整整50秒。
对于有的同学来说,为什么还是这么慢呢,哈哈,这就是我自己sb了,redis连接的是远程的,打脸了,希望大家不要犯这么蠢的错误,该为本地之后,1000个数据的访问量只需6秒,是不是很棒呢!
这是我测试的,1000个ajax异步请求来测试的,结果很快,没来得及前后截图做对比,我的分享就是这些了,欢迎大家指正。