在java中使用redis,做简单的登录帐号的验证,使用string类型,使用redis的过期时间功能

1.首先进行redis的jar包的引用,因为用的是springBoot,springBoot集成了redis直接引入即可

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>

2.安装redis的jar包的驱动

<dependency>
<groupId>redis.clients</groupId>
<artifactId> jedis</artifactId>
<version>2.9.0</version>
</dependency>

3. 设置过期时间

第一种:

jedis.setex(loginId, 300, "1"); key为loginId,过期时间为300秒,值为"1" 或者

第二种:

jedis.set(loginId,"1")

jedis.expire(loginId,300)

 
 package com.idcos.automate.test.workflow.operation;

 import org.junit.Test;
import redis.clients.jedis.Jedis; /**
* @author GuanBin
* @version Redis.java, v1 2018/6/20 下午2:47 GuanBin Exp $$
*/ public class RedisTest {
Jedis jedis = new Jedis("127.0.0.1", 6379); @Test
public void testCheckLogin() {
//登录验证时,5分钟内连续输错3次密码,锁住帐号;帐号锁住时间为半个小时,半小时后解封
checkUser("tom", "123");
} private void checkUser(String loginId, String password) {
Boolean exit = jedis.exists(loginId); if (exit == true && ("true".equals(jedis.get(loginId)))) {
System.out.println("该帐号已被锁,请确认");
// throw new CommonBizException("该帐号已被锁,请确认"); } else if (exit == true && "5".equals(jedis.get(loginId))) {
//锁帐号
jedis.set(loginId, "true");
//设置半个小时的过期时间
jedis.expire(loginId, 30 * 60);
} else {
checkNameAndPassword("tom", "123");
}
} private void checkNameAndPassword(String loginId, String password) { if ("tom".equals(loginId) && "123456".equals(password)) {
jedis.del(loginId);
System.out.println("登录成功"); } else {
if (jedis.exists(loginId)) {
jedis.incr(loginId);
} else {
jedis.setex(loginId, 300, "1");
}
System.out.println("第" + jedis.get(loginId) + "登录失败");
} } }

在客户端用ttl命令查看tom这个key还有多长时间解锁

Redis 在java中的使用(登录验证,5分钟内连续输错3次密码,锁住帐号,半小时后解封)(三)的更多相关文章

  1. Java 自定义注解在登录验证的应用

    java注解 从 JDK 5开始,Java 增加了注解的新功能,注解其实是代码里面的特殊标记,这些标记可以在编译.类加载和运行时被读取,在不改变代码原有逻辑下,给源文件嵌入注解信息.再通过返回获取注解 ...

  2. Redis在java中的使用

    1.首先安装Redis环境.可以在Windows.linux.别的服务器上搭建Redis环境 2.在java工程中导入必须的jar包 如maven上导入两个jar] <!-- Redis必须包 ...

  3. Redis安装 java中的连接 序列化 反序列化

    安装路径 /webapp/redis/redis- #启动redis /webapp/redis/redis-/src/redis-server & #关闭redis /webapp/redi ...

  4. Django-rest_framework中利用jwt登录验证时,自定义返回凭证和登录校验支持手机号

    安装 pip install djangorestframework-jwt 在Django.settings中配置 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATIO ...

  5. java中部分知识点的验证实现

    java中运算符重载 满足以下条件的两个或多个方法构成"重载"关系: (1)方法名相同: (2)参数类型不同,参数个数不同,或者是参数类型的顺序不同. 注意:方法的返回值不作为方法 ...

  6. 深入理解Java中的同步静态方法和synchronized(class)代码块的类锁

    一.回顾学习内容 在前面几篇博客中我我们已经理解了synchronized对象锁.对象锁的重入.synchronized方法块.synchronized非本对象的代码块, 链接:https://www ...

  7. Java中使用split方法根据英文问号?切割字符串时报错

    因为正则表达式的原因,我们无法在java中直接使用String.split("?"),需要先转义其正确写法为: public static void splitStr() { St ...

  8. Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池

    如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...

  9. Redis 在 Java 中的使用

    转:http://blog.csdn.net/jiangtao_st/article/details/8256610 一.下载jar包 https://github.com/xetorthio/jed ...

随机推荐

  1. 半监督学习(semi-supervised learning)

    P(x)P(x,y)}⇒P(y|x) 自 P(x) 生成的无标签样本: 自 P(x,y) 生成的标记样本:

  2. PHP关联数组教程

    PHP 数组 关联数组 什么是数组?在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量.无需很多相似的变量,你可以把数据作为元素存储在数组中.数组中的元素都有自己的 ID,因此可以 ...

  3. 利用Adorner制作用于图像裁切的选择框

    原文:利用Adorner制作用于图像裁切的选择框 前天,我写了一篇"使用Adorner显示WPF控件的边界点"的文章.这次,使用从Adorner继承来写一个用于图像裁切的选择框. ...

  4. qt线程(转)----这篇很专业!

    本文档是自己所整理的一份文档,部分是原创,还转贴了网上的一此资料(已经标明了),(难点是多线程的编写),是有源代码的,大家可以作为参考,用到的知识是视频采集,压缩解压(xvid),实时传输(jrtp) ...

  5. npm学习(-)

    了解npm请前往https://www.npmjs.cn/getting-started/what-is-npm/ npm 由三个独立的部分组成: 网站 注册表(registry) 命令行工具 (CL ...

  6. linuxC动态内存泄漏追踪方法

    C里面没有垃圾回收机制,有时候你申请了动态内存却忘记释放,这就尴尬了(你的程序扮演了强盗角色,有借有还才是好孩子).当你想找出内存泄露的地方时,有的投入海量的代码中,头痛不已.还好GNU C库提供了些 ...

  7. IDEA 自动化配置

    # IDEA maven web项目:http://www.cnblogs.com/Sinte-Beuve/p/5730553.html # IDEA 数据库自动化 ## 功能 ① SQL 代码自动感 ...

  8. 【WPF】MVVM模式的3种command

    原文:[WPF]MVVM模式的3种command 1.DelegateCommand 2.RelayCommand 3.AttachbehaviorCommand 因为MVVM模式适合于WPF和SL, ...

  9. 数据绑定(六)使用XML数据作为Binding的Source

    原文:数据绑定(六)使用XML数据作为Binding的Source .NET Framework提供了两套处理XML数据的类库 1. 符合DOM标准的类库:包括XmlDocument.XmlEleme ...

  10. Win8 Metro(C#) 数字图像处理--1 图像打开,保存

    原文:Win8 Metro(C#) 数字图像处理--1 图像打开,保存 作为本专栏的第一篇,必不可少的需要介绍一下图像的打开与保存,一便大家后面DEMO的制作.   Win8Metro编程中,图像相关 ...