1. <?php
    2. // 连接到Redis服务器
    3. $redis = new Redis();
    4. $redis->connect('127.0.0.1', 6379);
    5. // 如果设置了密码,取消注释并填写密码
    6. // $redis->auth('your_password');
    7. // 设置最大访问次数和时间间隔
    8. $maxRequestsPerInterval = 100; // 最大请求次数
    9. $interval = 60; // 时间间隔,单位为秒
    10. // 获取用户的IP地址
    11. $userIp = $_SERVER['REMOTE_ADDR'];
    12. // 创建一个唯一的key
    13. $key = "user_ip:$userIp";
    14. // 检查key是否存在,并设置过期时间
    15. if ($redis->exists($key)) {
    16. // 如果key存在,自增计数
    17. $requestCount = $redis->incr($key);
    18. } else {
    19. // 如果key不存在,设置初始计数为1,并设置过期时间
    20. $redis->setex($key, $interval, 1);
    21. $requestCount = 1;
    22. }
    23. // 检查请求次数是否超过了限制
    24. if ($requestCount > $maxRequestsPerInterval) {
    25. // 如果超过了限制,返回错误信息
    26. http_response_code(429); // 设置HTTP状态码为429 Too Many Requests
    27. echo "您已达到最大请求次数限制,请稍后再试。";
    28. exit;
    29. }
    30. // 如果没有超过限制,继续处理请求
    31. // ... 这里是处理请求的代码 ...
    32. ?>