zoukankan      html  css  js  c++  java
  • redis投票计数

    <?php
    /**
     * 
     * 缓存利用测试,这里我们获取传过来的投票数据,每次加1,如果增加到了设定值,才将投票
     * 次数写回mysql,这大大减轻了与mysql链接的开销,redis的使用由此可见一斑
     * @var unknown_type
     * @来自:www.crazyant.net和www.51projob.com
     */
    
    //获取投票的信息的ID
    $aid = isset($_GET['aid']) ? ereg_replace("[^0-9]", "", $_GET['aid']) : 0;
    
    //当前投票的数字,指的是在redis中的数据
    $this_click_num = 0;
    
    if($aid>2){
    	//设定写回的投票数的最大值,到了此值就写回mysql
    	$update_till_num = 50;
    	
    	//创建redis对象
    	$r = new Redis();
    	$r->connect('127.0.0.1',6379); 
    	//得到现在是第几个数据了
    	$this_click_num = $r->get('count_xin_newgame:'.$aid);
    	//点击数加1
    	$r->set('count_xin_newgame:'.$aid,$this_click_num+1);
    	if($this_click_num>=$update_till_num)
    	{
    		//如果点击数超过了设定数,那么就把数据写到mysql
    		if($this_click_num>$update_till_num)
    		require_once(dirname(__FILE__)."/db.php");
    		//更新数据库
    		$db->ExecuteNoneQuery(
    			"UPDATE `addonnewgame` 
    				SET `game_num` = game_num + '{$update_till_num}' 
    				WHERE `dede_addonnewgame`.`aid` ={$aid};"
    		);
    		//重置投票数目为0
    		$r->set('count_xin_newgame:'.$aid,0);
    	}
    	$r->setTimeout('count_xin_newgame:'.$aid,7*24*60*60);
    	exit($this_click_num);
    }
    ?>
    
  • 相关阅读:
    基于mybatis的crud demo
    事务的隔离级别
    spring中ioc的实现
    spring中xml配置文件
    spring中AOP的实现
    mybatis框架
    基于Mapreduce的并行Dijkstra算法执行过程分析
    算法技巧:位运算 逻辑运算
    day04_09 while循环03
    day04_08 while循环02
  • 原文地址:https://www.cnblogs.com/Alight/p/4744870.html
Copyright © 2011-2022 走看看