php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?

站长

发表文章数:4335

如何为.NETCore安装汉化包智能感知

好了,什么是冷热数据交换呢?

很土的解释一下,冷数据就是之前使用的数据,有种过去式的感觉,而热数据就是当前的数据,理解为现在进行时吧。如何交换呢?就是将Redis的数据周期存储到mysql中!

 整体的业务流程

用户投票后,首先将投票数据保存到Redis。 这些数据是热数据,然后写个定时任务,定时(例如10s)将热数据保存到MySQL。 这些数据成为冷数据,然后从Redis删除冷数据。 一遍又一遍,直到一个小时的投票结束了。

 数据表构建

php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?

 

 结构文件我们这里分index.html ,  vote.php , swap.php  分别来处理

index.html

这是投票的页面,假如有3个投票按钮,我们模拟给3个用户投票,点击按钮,使用ajax调用vote.php文件

vote.php文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Document</title>
</head>
<script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<body>
<p><span id="uid1">0</span><input type="button" value="用户1" onclick="vote(1);" /></p>
<p><span id="uid2">0</span><input type="button" value="用户2" onclick="vote(2);" /></p>
<p><span id="uid3">0</span><input type="button" value="用户3" onclick="vote(3);" /></p>
</body>
<script>
    function vote(i){
        $.get('./vote.php?uid='+i,function(rs){
            var span = '#uid'+i;
            $(span).html(rs);
        });
    }
</script>
</html>

vote.php

这个文件是实现投票的逻辑。首先连接上Redis服务器,然后保存投票人id,然后将投票人id为key记录每个用户的票数,然后返回给index.html文件,最后使用global_voteid作为key记录总票数,也可以作为MySQL的自增长的键。然后记录uid,ip,time等数据。

php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?

 

 

常见的web安全问题总结

swap.php 文件

主要目的是交换热数据和冷数据。 首先,连接MySQL数据库和Redis服务器,然后每10秒执行一次while循环。 在while循环中,获取插入到mysql中的自增长投票主键和最新投票主键(位置)。确定插入位置是否存在。 如果不存在,请从头开始插入。 如果所有插入均已完成,请等待。 如果未插入,请执行插入操作

php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?

 

 运行步骤如下:

1、运行 swap.php 文件,redis监听投票

php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?

linux系统使用php命令行工具调用swap.php (推荐使用这种方法)

 

 php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?

 

 2.模拟请求投票

php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?

 

 php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?

 

 php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?

《一头扎进》系列之Python+Selenium框架实战篇4- 价值好几K的框架,呵!这个框架有点意思啊!!!

分享到:
赞(0) 打赏 生成海报

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

投稿赚钱
2020年在家赚取零花钱
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册