利用redis做频率限制第一篇
2016-04-30 21:18
645 查看
public Result checkRateLimit(String clientIp, int ipTime, int ipCount) { // 每个ip的redis的key都不一样 String ipRateKey = "ipRates:" + clientIp; System.out.println(ipRateKey); long time = commonRedis.ttl(ipRateKey); System.out.println("ttl time: " + time); if (time > 0) { System.out.println(ipRateKey + "还未过期"); } else if (time == -1) { System.out.println(ipRateKey + "不存在或是设置过期时间"); } String ipRates = commonRedis.get(ipRateKey); Integer ipTimes = 0; if (ipRates == null) { // 没有此键 commonRedis.set(ipRateKey, "1"); commonRedis.expire(ipRateKey, 1000); ipTimes = 1; } else { // 有此键 ipTimes = Integer.parseInt(ipRates); commonRedis.incr(ipRateKey); } System.out.println("ipTimes: " + ipTimes); if (ipTimes > ipCount) { return new Result(-1, "该ip频率受限,每分钟最多登录" + ipCount + "次"); } return new Result(0, "success"); }
相关文章推荐
- Tomcat集群+Nginx+Redis服务搭建
- Redis源码解析:17Resis主从复制之主节点的部分重同步流程及其他
- redis数据类型
- NoSQL之Redis(五)--- Redis测试以及其与Spring的集成
- redis安装
- Dubbo-redis3解决负载均衡Session共享
- 常用 redis 命令(for php)
- hadoop正式学习之redis---redis优化
- 用Redis bitmap统计活跃用户、留存
- 用Redis bitmap统计活跃用户、留存
- 虚拟内存的使用--Redis学习笔记九
- 3.Python操作Redis:字符串(String)
- 发布与订阅消息--Redis学习笔记八
- 基于zookeeper管理redis集群,LCMPS框架(二)
- redis windows下的环境搭建
- redis基础
- 安装 phpredis 扩展
- Redis 一二事 - 在spring中使用jedis 连接调试单机redis以及集群redis
- (35)Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】
- 1.Python操作Redis:键(Key)