社区
高性能WEB开发
帖子详情
如何提高并发性能
suncheng_hong
2008-11-06 10:45:09
一个投票系统,同时在线N多人,同时投票。如何尽可能真实显示投票个数。
...全文
572
21
打赏
收藏
如何提高并发性能
一个投票系统,同时在线N多人,同时投票。如何尽可能真实显示投票个数。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
supremeholy
2008-12-10
打赏
举报
回复
[Quote=引用 18 楼 dengfeiling 的回复:]
用缓存的方式, 先更新缓存的计数, 然后再看情况间隔地更新表
[/Quote]
顶下
thomaslw
2008-12-04
打赏
举报
回复
楼上说的好 前面的太废话了
人家问高并发 而且反正都是锁,
那么原则是,先接进入,在内存队列中解决实时性,数据库只是作持久存储的
你投票才几个结果阿 。。。说这么多
dandelionl
2008-12-01
打赏
举报
回复
先保存在内存,间隔存入数据库。
dengfeiling
2008-11-27
打赏
举报
回复
用缓存的方式, 先更新缓存的计数, 然后再看情况间隔地更新表
A296286729
2008-11-19
打赏
举报
回复
[Quote=引用 8 楼 bjsuo 的回复:]
1.如何缓冲请求?
有多种方式,简单的可以用一个HashMap来缓冲 key是投票的ID,value是投票的总数,定时或者其它规则的更新到数据库中,但前台显示用这里面存的数据
复杂一点的可以用memcache
2.数据库如何做这方面的优化?
保存这类数据的表,不要设置索引,不要设置主键,字段不要太多,越简单越好
[/Quote]
顶上.
cjmiou
2008-11-14
打赏
举报
回复
顶一下
草原可可
2008-11-14
打赏
举报
回复
一个IP 设定一个 屏蔽代理IP
Ny-6000
2008-11-14
打赏
举报
回复
甚至于你一直在更新同一条记录。
大多情况,都如此的。
hecaiyun2003
2008-11-14
打赏
举报
回复
学习学习.
易企加_天马行空
2008-11-10
打赏
举报
回复
[Quote=引用 7 楼 suncheng_hong 的回复:]
tmxk2002:
1.如何缓冲请求?
2.数据库如何做这方面的优化?
[/Quote]
如果在内存里做计算,考虑两种情况,一种你的server只有一台机器,这个时候,你可以按投票的项用一个静态的Dictionary<string,long> 来存储。然后调用InterLocked.Increment方法就可以了。然后后台起来一个线程,定时轮询这个dictionary,把每项的结果保存到数据库。轮询的间隔根据对于数据的可靠性要求来定。
如果你的服务器是多台,则在存储的时候要做点手脚,就是保存到数据库里的值总是数据库里的值与内存里的值相加的。做法是,先取内存里的数据,然后清空内存里的数据(这两步的操作在一个lock里做)。将数据传到存储过程,存储过程加上事务保证数据唯一性。
如果你直接在数据库里做,就要建立事务,同时建立行锁,保证数据的一致性。与前面那位兄台相反的是,你必须建立索引来加快每次的查询速度。因为你的操作是更新数据,其他的数据库优化其实不会多,因为你投票的项目不会多。甚至于你一直在更新同一条记录。
林g
2008-11-10
打赏
举报
回复
up
w161134025
2008-11-10
打赏
举报
回复
[Quote=引用 8 楼 bjsuo 的回复:]
1.如何缓冲请求?
有多种方式,简单的可以用一个HashMap来缓冲 key是投票的ID,value是投票的总数,定时或者其它规则的更新到数据库中,但前台显示用这里面存的数据
复杂一点的可以用memcache
2.数据库如何做这方面的优化?
保存这类数据的表,不要设置索引,不要设置主键,字段不要太多,越简单越好
[/Quote]
up
bjsuo
2008-11-09
打赏
举报
回复
1.如何缓冲请求?
有多种方式,简单的可以用一个HashMap来缓冲 key是投票的ID,value是投票的总数,定时或者其它规则的更新到数据库中,但前台显示用这里面存的数据
复杂一点的可以用memcache
2.数据库如何做这方面的优化?
保存这类数据的表,不要设置索引,不要设置主键,字段不要太多,越简单越好
suncheng_hong
2008-11-09
打赏
举报
回复
tmxk2002:
1.如何缓冲请求?
2.数据库如何做这方面的优化?
易企加_天马行空
2008-11-07
打赏
举报
回复
数据库自己会处理的啊,
如果是你自己操作文件来存储,你可以设置一个缓存区,来缓冲外面的请求,就是在内存里计算投票的次数,然后用一个后台线程来处理结果的保存。
zzxap
2008-11-07
打赏
举报
回复
一个IP一个,设定时间段
suncheng_hong
2008-11-07
打赏
举报
回复
不能限制用户的投票。
主要想问如何处理并发问题。
比如说记录 article 表
id title content tptimes(投票次数)
比如很多人对某篇文章感兴趣,都要投它,必然有并发问题,如何如何尽可能真实显示投票个数。
这是个面试题目,求高手解答。
闯荡江湖
2008-11-06
打赏
举报
回复
也想了解下,
chinawes
2008-11-06
打赏
举报
回复
UP
zhao_tk
2008-11-06
打赏
举报
回复
up
提高
系统
并发
性的方法总结
提高
系统
并发
性的方法总结
建立索引,
提高
并发
性
利用Update锁住某行begin tranUpdate Product Set Name=bike where ID=1然后另外起一个会话Select * from ProductSelect * from Product where ID=1Select * from Product whereID=2问题是:哪些语句是可以执行de?y一般理解是
如何来
提高
点赞业务的
并发
性
如何来
提高
点赞业务的
并发
性
提高
代码
性能
及
并发
性的方法浅谈
最近在做系统调优,总结了下cache相关知识,以及如何
提高
性能
和
并发
性能
的方法。
如何
提高
Flask的高
并发
性能
允许 Flask 处理多个请求,但仍然受 Python 的 GIL 限制,不适用于高
并发
场景。如果 Flask 需要执行耗时操作(如邮件发送、爬虫、视频处理等),可以使用。可以用于反向代理和负载均衡,
提高
Flask 处理能力。这样 Flask 在高
并发
场景下可以保持高效运行 🚀!的
并发
性能
可以从多个方面入手,主要包括。Flask 默认是单线程的,可以使用。如果你的 Flask 应用需要支持。(如聊天、股票推送),可以使用。Flask 自带的开发服务器()不适用于生产环境。
高性能WEB开发
25,980
社区成员
4,366
社区内容
发帖
与我相关
我的任务
高性能WEB开发
高性能WEB开发
复制链接
扫一扫
分享
社区描述
高性能WEB开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章