当前位置: 首页 > news >正文

.net实现redis下单超卖(jmeter高并发测试)(自己记录用)

业务代码

注册时就初始化100个库存

public  class UserRedisHelper : RedisHelper<UserMark>
{public static void BindRedis(){if (RedisServer.Cache == null)throw new Exception("initalize first");Initialization(RedisServer.UserCache);UserRedisHelper.Set("seckill:stock:huawei_phone", 100);}
}

下单接口

//方法外注册private static readonly ThreadLocal<Random> _threadLocalRandom =new ThreadLocal<Random>(() => new Random());#region
// <summary>
// 测试masstransit发送消息
// </summary>
/// <returns></returns>
[HttpGet("testRedisGet")]
[Log(Title = "TestMessageLost", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
[AllowAnonymous]
public IActionResult TestRedisGet(int userId)
{userId = _threadLocalRandom.Value.Next(1000, 10000);// 1.检查用户是否已下单(无锁)string userRecordKey = $"seckill:user:record:{userId}";if (UserRedisHelper.Exists(userRecordKey)){return BadRequest("您已参与过该商品秒杀,不可重复下单");}// 2. 检查库存(无锁,并发时会超卖)string stockKey = "seckill:stock:huawei_phone";int currentStock = UserRedisHelper.Get<int>(stockKey);if (currentStock <= 0){return BadRequest("手慢了,商品已抢完");}Thread.Sleep(1);// 3. 扣减库存(无锁,多实例并发时会超卖)UserRedisHelper.Set(stockKey, currentStock - 1);// 4. 记录用户下单(无锁,可能重复记录)UserRedisHelper.Set(userRecordKey, 1, 600); // 10分钟过期return Ok("秒杀成功!");
}
#endregion

需要两个实例,两个端口分别是 8888 8890 这两个端口分别抢redis的同一个资源。

jmeter

运行后,用户超过100,超卖了

实现分布式锁

        

http://www.dtcms.com/a/569681.html

相关文章:

  • 全自动壁纸采集源码
  • 公司用员工信息做网站域名备案网站建站描述撰写
  • Python类中方法种类介绍
  • AI研究:大语言模型(LLMs)需要怎样的硬件算力
  • 贵阳网站建设方案报价查企业资质上什么网站
  • Parasoft C/C++test中Trace32调试器的配置与单元测试执行
  • 基于大语言模型(LLM)的多智能体应用的新型服务框架——Tokencake
  • 单元测试(TestNG+PowerMock)
  • 哪家公司网站建设好点襄樊网站建设哪家好
  • 公司网站做推广预装wordpress主机
  • CSS 文本和字体属性、列表属性
  • 网站布局结构图百度关键词排名销售
  • 小兔自助建站设计网站做海报
  • Camera成像原理
  • QuickMagicApi
  • 海洋承德网站建设公司店铺推广语
  • elasticsearch学习笔记-02
  • 构建一个自主深度思考的RAG管道以解决复杂查询--创建多阶段检索漏斗(5)
  • 网站开发方案 文档视频网站设计论文
  • 做钢材什么网站好个人装修设计软件
  • MFC - Picture Control 控件显示图片
  • 同一个网口有两个同名相机
  • mfc140.dll文件的丢失问题怎么处理?mfc140.dll文件的具体作用是什么
  • 第6章 支持向量机
  • 网站建设与管理大作业总结如何建设一个公众号电影网站
  • 网站模板去哪下载软件公司是干嘛的
  • rag:给大模型更精确的开端
  • Linux权限(5)
  • CVE-2025-4334 深度分析:WordPress wp-registration 插件权限提升漏洞
  • 【题解】洛谷 P3980 [NOI2008] 志愿者招募 [最大流最小费用]