• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Redis高并发的一个小问题

php 搞代码 4年前 (2022-01-25) 17次浏览 已收录 0个评论

RT,现在有个客户报名小功能,要求:每个客户只能报名一次;
由于客户量大,预计峰值并发到达 1W/S,那么问题来了,使用 Redis 如何实现该需求?

能上代码的朋友感激不尽!

+本文来源gao!%daima.com搞$代*!码9网(

搞gaodaima代码复内容:

RT,现在有个客户报名小功能,要求:每个客户只能报名一次;
由于客户量大,预计峰值并发到达 1W/S,那么问题来了,使用 Redis 如何实现该需求?

能上代码的朋友感激不尽!

hincrby即可解决
数据存储:将报名信息保存到一个hash结构中,hash里面的key使用用户id,value是报名次数
报名:直接使用hincrby命令,将对应的userId的value+1,如果之前没报名,返回1,大于1表示已报过名。
并发问题:再大的并发量这个方案都不会有任何问题,因为可以重复提交报名信息,而且每个步骤都是原子性的,hincrby的性能接近O(1),效率也不低,如果需要前端提示重复报名,可根据hincrby返回值是否>1来判断。

redis有事务功能,可以参考一下

就是正常的逻辑添加,读取,更新逻辑。

既然并发较大那你要把redis,nginx,linux进行配置,首先让他们物理配置上能承受1w并发。
其实也没什么特别的,如果你是nginx还可以进行优化。

redis 的读写性能,官网说明可以10w+每秒,实际的读写性能可能没有这么高,但是完全符合你的需求的
可以对每个公司设置一个key,使用redis set方法即可,存在的key就直接覆盖


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Redis高并发的一个小问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址