zoukankan      html  css  js  c++  java
  • Redis 在java中的使用(登录验证,5分钟内连续输错3次密码,锁住帐号,半小时后解封)(三)

    在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)

     
     1 package com.idcos.automate.test.workflow.operation;
     2 
     3 import org.junit.Test;
     4 import redis.clients.jedis.Jedis;
     5 
     6 /**
     7  * @author GuanBin
     8  * @version Redis.java, v1 2018/6/20 下午2:47 GuanBin Exp $$
     9  */
    10 
    11 public class RedisTest {
    12     Jedis jedis = new Jedis("127.0.0.1", 6379);
    13 
    14     @Test
    15     public void testCheckLogin() {
    16         //登录验证时,5分钟内连续输错3次密码,锁住帐号;帐号锁住时间为半个小时,半小时后解封
    17         checkUser("tom", "123");
    18     }
    19 
    20     private void checkUser(String loginId, String password) {
    21         Boolean exit = jedis.exists(loginId);
    22 
    23         if (exit == true && ("true".equals(jedis.get(loginId)))) {
    24             System.out.println("该帐号已被锁,请确认");
    25 //            throw new CommonBizException("该帐号已被锁,请确认");
    26 
    27         } else if (exit == true && "5".equals(jedis.get(loginId))) {
    28             //锁帐号
    29             jedis.set(loginId, "true");
    30             //设置半个小时的过期时间
    31             jedis.expire(loginId, 30 * 60);
    32         } else {
    33             checkNameAndPassword("tom", "123");
    34         }
    35     }
    36 
    37     private void checkNameAndPassword(String loginId, String password) {
    38 
    39         if ("tom".equals(loginId) && "123456".equals(password)) {
    40             jedis.del(loginId);
    41             System.out.println("登录成功");
    42 
    43         } else {
    44             if (jedis.exists(loginId)) {
    45                 jedis.incr(loginId);
    46             } else {
    47                 jedis.setex(loginId, 300, "1");
    48             }
    49             System.out.println("第" + jedis.get(loginId) + "登录失败");
    50         }
    51 
    52     }
    53 
    54 }

     

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

  • 相关阅读:
    css中vertical-align(垂直对齐)的使用
    CSS教程:div垂直居中的N种方法[转]
    前后端分离开发部署模式
    <a>标签的href和onclick属性
    css 字体样式
    谷歌开发者工具界面介绍
    cps和dsp渠道手法的研究
    网络资源汇总
    DataWorks(数据工场)
    vue入门学习笔记
  • 原文地址:https://www.cnblogs.com/guanbin-529/p/9209990.html
Copyright © 2011-2022 走看看