我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis 实现登陆次数限制的思路详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis 实现登陆次数限制的思路详解

title: redis-login-limitation 

利用 redis 实现登陆次数限制, 注解 + aop, 核心代码很简单.

基本思路

比如希望达到的要求是这样: 在 1min 内登陆异常次数达到5次, 锁定该用户 1h

那么登陆请求的参数中, 会有一个参数唯一标识一个 user, 比如 邮箱/手机号/userName

用这个参数作为key存入redis, 对应的value为登陆错误的次数, string 类型, 并设置过期时间为 1min. 当获取到的 value == "4" , 说明当前请求为第 5 次登陆异常, 锁定.

所谓的锁定, 就是将对应的value设置为某个标识符, 比如"lock", 并设置过期时间为 1h

核心代码

定义一个注解, 用来标识需要登陆次数校验的方法


package io.github.xiaoyureed.redispractice.anno;
import java.lang.annotation.*;
@Documented
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RedisLimit {
  
  String identifier();
  
  long watch();
  
  long lock();
  
  int times();
}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis 实现登陆次数限制的思路详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

详解vue各种权限控制与管理的实现思路

本篇文章给大家带来了关于vue的相关知识,其中主要详细介绍了vue各种权限控制与管理的实现思路,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。
2023-05-14

dedecms会员登录积分每天只限增加一次的实现思路

首先把思路说一下:先先检测当前时间与上编程客栈次登陆日期是否为同一天?如果是就不加积分。 如果上次登陆日期与当前登陆日期不相等就加积分。 具体修改: include文件夹下memberlogin.class.php文www.cppcns.c
2022-06-12

基于redis实现的点赞功能设计思路详解

前言 点赞其实是一个很有意思的功能。基本的设计思路有大致两种, 一种自然是用mysql等 数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回mysql等。 直接写入Mysql 直接写
2022-06-04

dedecms会员登录积分每天只限增加一次的实现思路及代码

首先把思路说一下:先检测当前时间与上次登陆日编程客栈期是否为同一天?如果是就不加积分。 如果上次登陆日期与当前登陆日期不相等就加积分。 具体修改: include文件夹下memberlogin.class.phpzuHJC文件 具体代码大概
2022-06-12

Discuz! X2.5论坛标题字数突破80的限制实现思路

当一些用户发布帖子的时候标题要是超过了80个字符超出的部分被剪切掉了,特别是一些用户发送一些英文或其他其语言的文章的时候标题说甚至会超过180个字符,又特别论坛编码是UTF-8格式,因为一个字占3个字节,所以标题最长也就26个汉字,很多用户
2022-06-12

深思 PHP 数组遍历的差异(array_diff 的实现)284567(思路详解)

深思 PHP 数组遍历的差异(array_diff 的实现)284567(思路详解)
2023-05-20

springboot实现jar运行复制resources文件到指定的目录(思路详解)

这篇文章主要介绍了springboot实现jar运行复制resources文件到指定的目录,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-15

mysql查询每小时数据和上小时数据的差值实现思路详解

一、前言 需求是获取某个时间范围内每小时数据和上小时数据的差值以及比率。本来以为会是一个很简单的sql,结果思考两分钟发现并不简单,网上也没找到参考的方案,那就只能自己慢慢分析了。 刚开始没思路,就去问DBA同学,结
2022-05-10

编程热搜

目录