如何使用redis制作投票系统的计数器
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家详细介绍了如何使用redis制作投票系统的计数器,文中示例代码介绍的非常详细,零基础也能参考此文章,感兴趣的小伙伴们可以参考一下。校验首先,要对每个用户的投票数进行校验。用户每天都有
千家信息网最后更新 2026年11月03日如何使用redis制作投票系统的计数器
这篇文章主要为大家详细介绍了如何使用redis制作投票系统的计数器,文中示例代码介绍的非常详细,零基础也能参考此文章,感兴趣的小伙伴们可以参考一下。
校验
首先,要对每个用户的投票数进行校验。用户每天都有3次投票机会,所以,我们可建立个键,将他的有效期设为明天凌晨。用户每投一票就加1等到了3票后,就提示今日次数已用完。
// 投票次数校验function checkVote($uid){ $key = "uid:$uid:cnt"; $tomrTime = mktime(0,0,0, date('m'), date('d')+1, date('Y')); if (!$redis->exsits($key)) { $redis->set($key, 0, ['ex' => $tomrTime - time()]); return true; } else if ( ($cnt = $redis->get($key)) < 3 ) { return true; } else { return false; }}统计投票
次数校验通过后,就需要统计用户的得票数了。
// 得票数计数// uid表示投票人id// touid表示得票人idfunction vote ($uid, $toUid){ $key = "uid:$toUid:vote"; // 投票数校验 if (checkVote($uid)) { // 统计投票数及参选人得票数 $redis->incr($key); $redis->incr("uid:$uid:cnt"); return true; } else { return false; }}我自己的阿里云主机配置只有1核cpu1G内存的配置,每秒incr性能能达到10万多次,redis性能真恐怖。
# redis-benchmark -t incr -qINCR: 105708.25 requests per second
Mysql异步更新用户得票数
最后,我们只需要做一个定时任务了,让mysql每隔一定时间就去同步用户的得票数。
方法是做一个死循环,每次循环都获取50个用户得票数,直到遍历完所有用户后,就退出循环,结束脚本。
$start = 0;while (true) { // 每次循环取50个用户id $users = $DB->query("SELECT uid,votes FROM users LIMIT $start, 50"); if (!$users) { exit(); } $keys = []; foreach ($users as $userinfo) { $keys[] = "uid:{$userinfo['uid']}:vote"; } $votes = $redis->mget($keys); foreach ($votes as $index => $vote) { if ($vote != $users[$index]['votes']) { $DB->query("UPDATE users SET votes = '$vote' WHERE uid='{$users[$index]['uid']}"); } } $start += 50;}Redis的mget命令的是一次获取多个key的值。获取了redis里存放的redis得票数后,要先和Mysql里的得票数做比对。不一样的时候才去更新Mysql的数据。
看完上述内容,你们掌握使用redis制作投票系统的计数器的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
投票
用户
得票数
循环
次数
统计
系统
计数器
制作
内容
性能
方法
更多
更新
配置
恐怖
有效
主机
代码
任务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
伟宏互联网科技
互联网的科技
疫情对互联网科技公司影响
重庆互联网络科技
小马过河互联网科技
郑州华宇互联网科技
玖二柒互联网科技公司待遇
科技互联网的估值
互联网金融科技公司干啥的
华服互联网科技官网
佳云科技和互联网广告
互联网和黑科技的看法
互联网软件和科技
南平创想时代互联网科技有限公司
赶超互联网科技 微信多开
元气玛特互联网科技公司是外包吗
互联网相关科技技术
兰石爱特工业互联网科技分公司
互联网的黑科技实验室
颐高云石互联网科技
没上市的科技互联网公司
互联网科技公司电话
黑科技闪耀互联网之光
成都互联网科技公司工作好不好
互联网媒体平台算高科技产业
国大互联网教育科技有限公司工作
广州新华互联网科技学校电竞方面
北京天晋互联网科技有限公司
山东蛋芒互联网科技有限公司
互联网企业和网络科技有限公司