ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

秒杀项目疑惑: Redis 及 Nginx

2022-09-06 16:04:40  阅读:212  来源: 互联网

标签:结果 压测 userId Redis Nginx 秒杀 写法


目录

Redis 不同方式记录 userId

记录用户 userId 的时候,我把 userId 作为 key 保存至 Redis 中了。
这样没有充分利用 Redis 的 Set 数据结构 ,但是,也能避免超卖问题的。
不过,两种不同写法得到的结果差异比较大。

// 我的写法
redisTemplate.opsForSet().add("secKill:user" + userId, psId);
// 示例项目中的写法
redisTemplate.opsForSet().add("secKill:user" + psId, userId);


图中左边标记为我的写法对应的结果,右边为示例项目对应的结果。
经过多次测试,前一种写法的结果基本是在 前 10 个用户附近波动,而后一种写法的结果看起来才是随机结果。没想明白是什么原因。

另外,我还尝试把商品数量修改为 50,前一种写法的结果基本在 前 60 个用户范围。

通过 Nginx 访问压测

我用了两台电脑做压测,两台电脑性能差异比较大。
在压测 Nginx 访问静态页面时,测试结果却不太正常。
下面是部分压测报告中吞吐量的记录:

PC Redis 缓存商品页 Nginx 访问静态页面
性能好 >2000 <700
性能差 <1200 >2500

不过,在局域网中,两台机器相互访问吞吐量都不高,访问性能差的电脑,Nginx 静态页面吞吐量才四五百左右了。不太确定造成结果差异的原因。

另外,我还尝试了启动 4 个服务,Nginx 负载均衡访问秒杀页面。负载均衡测试吞吐量不到 1000,比单机测试结果要低很多,单机测试大概在 3000 左右。这个结果是否正常呢?

标签:结果,压测,userId,Redis,Nginx,秒杀,写法
来源: https://www.cnblogs.com/JamKing/p/16661762.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有