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) + "登录失败");
}
}
}