当前位置 : 主页 > 网络编程 > PHP >

php自增长计数器

来源:互联网 收集:自由互联 发布时间:2021-06-28
/** * 生成自增长数字 * * @param string $key 缓存key * @param int $step 自增长步长 * @param int $expires 缓存过期时间,单位秒 * * @return int $num; * @author leeyi leeyisoft@qq.com */function incr_num($key = 'ddg', $s
 
/**
 * 生成自增长数字
 *
 * @param string $key 缓存key
 * @param int $step 自增长步长
 * @param int $expires 缓存过期时间,单位秒
 *
 * @return int $num;
 * @author leeyi <leeyisoft@qq.com>
 */
function incr_num($key = 'ddg', $step = 1, $expires = 0) {
    $redis     = new \\Org\\DDG\\Redis();
    $cache_key = 'incrnum:'.$key.'_setp:'.$step;
    $num       = $redis->handler->incrBy($cache_key, (int)$step);
  
    if ($expires>0) {
        $pexpire     = 'pexpire';
        $millisecond = $expires*1000;
    } else {
        $pexpire     = 'pexpireAt';
        $millisecond = get_time_235959()*1000+999;
    }
    if (2>$num) {
        $redis->handler->$pexpire($cache_key, $millisecond); // 设置过期时间
    }
  
    return $num;
}
  
  
/**
 * 根据给定时间戳,获取当天时间最后一秒的时间戳
 * @author leeyi <leeyisoft@qq.com>
 */
function get_time_235959($time = '') {
    $time = empty($time) ? NOW_TIME : intval($time);
    return strtotime(date('Y-m-d 00:00:00', $time+86400))-1;
}

网友评论