码迷,mamicode.com
首页 > 其他好文 > 详细

redis实际项目作用

时间:2018-01-08 12:19:44      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:$_server   ase   ring   case   cti   remote   sts   nbsp   exists   

我整理一下redis主要在项目作用,只是我接触到的

1  手机验证码存入redis中,可以限制什么时候有效

2 防止接口请求频率过高,例如一分钟只能请求5次

代码如下:

<?php
/**
 * 获取ip
 * @return array|false|string
 */
function getIp()
{
    if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
        $ip = getenv("HTTP_CLIENT_IP");
    else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
        $ip = getenv("REMOTE_ADDR");
    else if (isset($_SERVER[‘REMOTE_ADDR‘]) && $_SERVER[‘REMOTE_ADDR‘] && strcasecmp($_SERVER[‘REMOTE_ADDR‘], "unknown"))
        $ip = $_SERVER[‘REMOTE_ADDR‘];
    else
        $ip = "unknown";

    return ($ip);
}

$ip = getIp();

$redis = new Redis();
$redis->connect(‘127.0.0.1‘,‘6379‘);
$key = "api-".$ip."-limit";
$num = 5;

if ($redis->exists($key)) {
    $redis->incr($key);
    $result = $redis->get($key);

    if ($result > 5) {
        exit(‘次数过多‘);
    }

}else{
    $redis->incr($key);
    $redis->expire($key,60);
}

print_r(‘这是获得第 ‘.$redis->get($key)." 次");

3做缓存用,公司抓取股票基金的数据,存入redis进行缓存使用

4进行队列,应对并发请求

redis实际项目作用

标签:$_server   ase   ring   case   cti   remote   sts   nbsp   exists   

原文地址:https://www.cnblogs.com/matengfei123/p/8241881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!