Redis在数据统计中的实际作用
作者: 何忠利 • 发表于 2017-07-17
最新版redis已支持 字符串、列表、哈希、集合、有序集合、位图、地理空间、基数统计
这篇文章主要介绍下Redis在数据统计中的应用
1.统计真实用户日活数
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$uid = getUserId(); // 自己实现,返回用户唯一标示。
$dayHot = 'dayHot_'date('Ymd',time()); // dayHot_20170212
$redis->setBit($dayHot,$uid,1);
$redis->bitCount($dayHot); // 统计今日用户数
2.非正常登录下统计IP日活数(不推荐,除非内存非常大,否则就是天坑)
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$ip = sprintf('%u',ip2long($ip)); // 解决在32位操作系统下出现负数。
$dayHotIp = 'dayHotIp_'date('Ymd',time());
$redis->setBit($dayHotIp,$ip,1);
3.把一分钟内请求大于500次的IP禁止10分钟
<?php
$is_bad = $redis->get('bad_'.$_SERVER['REMOTE_ADDR']);
if($is_bad){
exit('is bad request');
}
$key = 'time_'.date('Hi',$_SERVER['REQUEST_TIME']);
if($redis->get($key) < 500){
$redis->incrby($key,1);
$redis->expire($key,61);
}else{
$redis->set('bad_'.$_SERVER['REMOTE_ADDR'],'is bad',600);
}
这边先简单介绍,后续持续更新!!!
文章关键词:
# Redis
# 非关系型的数据库
# 数据统计
阅读量:
999
返回主页