在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次密码,锁住帐号,半小时后解封)(三)的更多相关文章
-
Java 自定义注解在登录验证的应用
java注解 从 JDK 5开始,Java 增加了注解的新功能,注解其实是代码里面的特殊标记,这些标记可以在编译.类加载和运行时被读取,在不改变代码原有逻辑下,给源文件嵌入注解信息.再通过返回获取注解 ...
-
Redis在java中的使用
1.首先安装Redis环境.可以在Windows.linux.别的服务器上搭建Redis环境 2.在java工程中导入必须的jar包 如maven上导入两个jar] <!-- Redis必须包 ...
-
Redis安装 java中的连接 序列化 反序列化
安装路径 /webapp/redis/redis- #启动redis /webapp/redis/redis-/src/redis-server & #关闭redis /webapp/redi ...
-
Django-rest_framework中利用jwt登录验证时,自定义返回凭证和登录校验支持手机号
安装 pip install djangorestframework-jwt 在Django.settings中配置 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATIO ...
-
java中部分知识点的验证实现
java中运算符重载 满足以下条件的两个或多个方法构成"重载"关系: (1)方法名相同: (2)参数类型不同,参数个数不同,或者是参数类型的顺序不同. 注意:方法的返回值不作为方法 ...
-
深入理解Java中的同步静态方法和synchronized(class)代码块的类锁
一.回顾学习内容 在前面几篇博客中我我们已经理解了synchronized对象锁.对象锁的重入.synchronized方法块.synchronized非本对象的代码块, 链接:https://www ...
-
Java中使用split方法根据英文问号?切割字符串时报错
因为正则表达式的原因,我们无法在java中直接使用String.split("?"),需要先转义其正确写法为: public static void splitStr() { St ...
-
Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池
如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...
-
Redis 在 Java 中的使用
转:http://blog.csdn.net/jiangtao_st/article/details/8256610 一.下载jar包 https://github.com/xetorthio/jed ...
随机推荐
-
tomcat源码分析(三)一次http请求的旅行-从Socket说起
p { margin-bottom: 0.25cm; line-height: 120% } tomcat源码分析(三)一次http请求的旅行 在http请求旅行之前,我们先来准备下我们所需要的工具. ...
-
[.NET领域驱动设计实战系列]专题九:DDD案例:网上书店AOP和站点地图的实现
一.引言 在前面一专题介绍到,要让缓存生效还需要实现对AOP(面向切面编程)的支持.所以本专题将介绍了网上书店案例中AOP的实现.关于AOP的概念,大家可以参考文章:http://www.cnblog ...
-
在visual studio 2010中调用ffmpeg
转自:http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html 最近几天一直在折腾ffmpeg,在网上也查了许多资料,费了不少劲,现在在这里和大家分享一 ...
-
IDE显示无法打开源文件时解决方案
解决方法:加上具体地址信息将 #include <qwidgetresizehandler_p.h> 改为 #include <C:\Users\INnoVation\Deskt ...
-
连接查询中on and和on where的区别
一.区别 1. and条件是在生成临时表时使用的条件,它不管and中的条件是否为真,都会返回左(或者右)边表中的记录. 2.where条件是在临时表生成好后,再对临时表进行过滤的条件.这时已经没有le ...
-
php使用注意点
php使用时间之前要将php.ini中时区设置好,否则会报警告.截图如下:“;date.timezone =”设置为“date.timezone =Asia/Shanghai”即可. apache如果 ...
-
Qt之界面数据存储与获取(使用setUserData()和userData())
在GUI开发中,往往需要在界面中存储一些有用的数据,这些数据可以来配置文件.注册表.数据库.或者是server. 无论来自哪里,这些数据对于用户来说都是至关重要的,它们在交互过程中大部分都会被用到,例 ...
-
JSONObject和JSONArray的简单使用(json-lib)
一. jar包 commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.j ...
-
关于在jsp页面中使用/struts-tags标签库的迭代器时,从ValueStack获取参数使用EL的问题
情况复原下: 通过valuestack存了个user,然后页面里可以${user.sex}拿到男.${user.sex=='男'}拿到ture 但是在使用 <s:if text="${ ...
- Android architecture