当前第2页 返回上一页
最后,我们只需要做一个定时任务了,让mysql每隔一定时间就去同步用户的得票数。
方法是做一个死循环,每次循环都获取50个用户得票数,直到遍历完所有用户后,就退出循环,结束脚本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $start = 0;
while (true) {
$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来做计数器完善投票系统的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
Redis怎么查看版本
Redis连接数配置多少
Redis使用哪种持久化策略好
关于java基于Redis有序集合实现排行榜
windows系统添加和删除Redis服务的方法
Redis实现秒杀的方法介绍(附代码)
浅谈Redis sds跟c字符串的区别
什么是Redis分布式锁
Redis info命令介绍
使用Redis的bitmaps统计活跃用户
更多相关阅读请进入《Redis》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 使用redis来做计数器完善投票系统