redis->executeCommand('INCRBY', [$wholeSiteView, 1]);//记录当天访问人数 //收集访问客数 $ip = Yii::$app->request->userIP; $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit'); $exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteVisit, $ip]); if (empty($exists)) { //记录当天的IP Yii::$app->redis->executeCommand('SADD', [$wholeSiteVisit, $ip]); } } //清空昨天的缓存 public static function clearYesNum($shopId) { $yesTime = date("Ymd", strtotime("-1 day")); //访问量清零 $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view', $yesTime); Yii::$app->redis->executeCommand('DEL', [$wholeSiteView]); //访客数清零 $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit', $yesTime); Yii::$app->redis->executeCommand('DEL', [$wholeSiteVisit]); } //获取今天的访问量 public static function getTodayViewNum($shopId) { $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view'); $nowNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]); $nowNum = !empty($nowNum) ? $nowNum : 0; return $nowNum; } //获取今天的访客数 ssh 2020.2.2 public static function getTodayVisitNum($shopId) { $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit'); $num = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]); return !empty($num) ? $num : 0; } //获取总访客数 public static function getTotalVisit($shopId) { $todayNum = self::getTodayVisitNum($shopId); $shop = ShopClass::getById($shopId); $currentTotalVisit = $shop->totalVisit; $newTotalVisit = stringUtil::calcAdd($currentTotalVisit, $todayNum); return $newTotalVisit; } //模拟创建昨天的访问IP与数据 public static function randYesNum($shopId) { $count = rand(10, 30); $yesTime = date("Ymd", strtotime("-1 day")); echo "\n开始创建昨天的访问量…\n"; for ($i = 0; $i < $count; $i++) { $ip = stringUtil::randIP(); $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit', $yesTime); $exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteVisit, $ip]); if (!empty($exists)) { return; } echo $wholeSiteVisit . "\n"; Yii::$app->redis->executeCommand('SADD', [$wholeSiteVisit, $ip]);//记录访问过网站的IP $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view', $yesTime); Yii::$app->redis->executeCommand('INCRBY', [$wholeSiteView, 1]);//记录访问网站人数 } echo "\n创建完成\n"; self::getYesNum($shopId); } //获取昨天的访问IP和数据 public static function getYesNum($shopId) { $yesTime = date("Ymd", strtotime("-1 day")); $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view', $yesTime); $yesterdayVisitNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]); echo '
';
echo '昨天的访问总量:' . $yesterdayVisitNum . '
';
$wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit', $yesTime);
echo 'ipList的Key:' . $wholeSiteVisit . '
';
$list = Yii::$app->redis->executeCommand('SMEMBERS', [$wholeSiteVisit]);
echo 'ipList:
';
print_r($list);
$num = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
echo 'ipList里的访问数量统计:' . $num;
}
}