当前位置: 首页 > news >正文

锦州如何做百度的网站免费下载app软件官网

锦州如何做百度的网站,免费下载app软件官网,遵义你想网,南宁seo排名首页springboot开发网站-使用redis数据库定时特征限制指定ip的访问次数。近期网站经常有人恶意访问,提交了很多垃圾信息。为了屏蔽这类灌水帖,打算屏蔽ip地址,限制24小时内只能访问1次某个接口。下面是测试的案例代码内容。 1:首先&am…

springboot开发网站-使用redis数据库定时特征限制指定ip的访问次数。近期网站经常有人恶意访问,提交了很多垃圾信息。为了屏蔽这类灌水帖,打算屏蔽ip地址,限制24小时内只能访问1次某个接口。下面是测试的案例代码内容。


1:首先,我们需要增加redis数据库的管理插件maven标记。

<!-- 添加Redis依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

2:其次,我们需要增加一个redis的代理管理实体类。

package com.example.guan.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;@Configuration
public class RedisConfig {@Beanpublic LettuceConnectionFactory redisConnectionFactory() {return new LettuceConnectionFactory(); // 默认连接本地}@Beanpublic RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory redisConnectionFactory) {final RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(redisConnectionFactory);return template;}
}

声明,如果你是想让这个代理类,链接某个指定的redis库,可以进一步在初始化实体类的过程中,新增参数,包括设置你自己的访问密码。我因为是默认了第一个,所以我就不需要写了。


你还可以设置自己的访问密码信息。


3,有了以上铺垫,我们开启本地redis数据库,然后写一个测试的控制器。试试看。

 

如图,我的本地redis已经开启初始化完成了。服务中。

4:测试控制器代码内容。

package com.example.guan.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.util.concurrent.TimeUnit;@RestController
public class MyController {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@GetMapping("/hello")public String handleRequest(HttpServletRequest request) {// 1.获取访客IPString ip = request.getHeader("X-Forwarded-For");if (ip == null || ip.isEmpty()) {ip = request.getRemoteAddr();System.out.println("current user ip:" + ip);}// 2.使用IP作为key,今天的日期作为prefixString key = "rate:limit:" + ip + ":";String date = LocalDate.now().toString();key += date;System.out.println("keyinfo:" + key);// 3.检查用户今天的请求次数ValueOperations<String, Object> opsForValue = redisTemplate.opsForValue();//查询redis内是否已经存在当前ip日期组合的信息Integer count = (Integer) opsForValue.get(key);// 4.如果是第一次请求或者超过24小时,重置计数if (count == null) {count = 0;System.out.println("你 first ,ok access this url访问该地址");// 更新请求计数count++;opsForValue.set(key, count, 24, TimeUnit.HOURS); // 设置键的过期时间为24小时// 继续处理请求...} else if (count != null && count >= 1) {return "访问次数超过上限,请明天tomorrow再来访问,谢谢";}return "请求hello接口地址,反馈数据成功";}
}

如图,下图就是测试结果截图。我因为已经访问了一次了,所以第二次请求的时候,就会提示,超过上限,请明天再来访问。

 

我没有做汉字的编码,所以汉字是乱码的。这个不影响我们的redis(信息的反馈结果)。说明,我们读取到了redis数据库内部,已经有这样一个key信息了。

http://www.yayakq.cn/news/778717/

相关文章:

  • 做筹款的网站需要什么资质网站手绘教程
  • 易企建站个人备案网站内容
  • 天津网站建设服务电话苏宁网站优化与推广
  • 天津市建设厅注册中心网站企业官方网站怎么申请
  • 七星彩网站建设网站建设与维护制作网页
  • 0资本建设网站长春seo推广
  • 一流的网站建设哪家好所有网站302跳转百度
  • 凡科怎么建站教程配送货wordpress
  • 自己做个网站怎么赚钱wordpress 视频站模版
  • 广告营销策划是做什么的东莞搜索seo关键词
  • 阿里云网站建设流程教案网站建设Z亿玛酷1流量订制
  • 岚山区建设局网站网站开发和平台开发
  • 西部中大建设集团网站连云港市网站平台
  • seo外包公司需要什么上海seo
  • 网站建设所需资料必应搜索引擎网站
  • 获取网站域名手机兼职赚钱平台一单一结
  • 服务器windos做网站永兴网站开发
  • 如何提高网站打开速度国际近期新闻
  • seo网站搭建网站上传图片问题
  • 自动做微网站阜阳做网站
  • 营销型网站建设托管wordpress 评论回复插件
  • 下载空间大的网站建设dw网页制作成品下载
  • 网站建设云解析dns有什么用做外贸网站要有域名
  • 深圳网站设计 深圳信科河南双师培训网站
  • 自己做的网站别人怎么访问网站方案讲解技巧
  • 建设投资基金管理有限公司网站广州做网站代理商
  • 四川省工程建设信息网站做的网站图片显示一半
  • 慈溪做网站哪家好怎么制作公司网页教程
  • 廊坊市建设银行网站网站设置反爬虫的主要原因
  • 网站建设龙采科技门户网站建站流程