如何使用redis制作投票系统的计数器
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要为大家详细介绍了如何使用redis制作投票系统的计数器,文中示例代码介绍的非常详细,零基础也能参考此文章,感兴趣的小伙伴们可以参考一下。校验首先,要对每个用户的投票数进行校验。用户每天都有
千家信息网最后更新 2025年11月09日如何使用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安全错误
数据库的锁怎样保障安全
晓蓓网络技术
还原mysql数据库
无极数据库
网络安全法应对境外
北京唯家网络技术有限公司
石家庄戴尔服务器
软件开发的实习内容怎么写
红龙防护者60数据库
cookie只保存在服务器
数字土地数据库标准
常用的数据库管理系统最新版本
生存服务器怎么玩小游戏
台州市公安局网络安全支队照片
昭化区网络安全委员会
数据库系统的阶段特点
幼儿园教师网络安全演讲稿
什么叫好的网络安全
十万人同时在线游戏的服务器成本
学校网络安全应急处置预案
教育技术学计算机网络技术
国泰安数据库上市日期
vfp打开数据库是什么意思
企业网络安全管理规定
慈溪财务软件开发公司
处cp软件开发
网页数据库查询工具
众包 软件开发
dell服务器启动系统修改
幼儿园教师网络安全演讲稿
数据库文件怎么备份