redis 手机验证码实现示例

 更新时间:2022年03月11日 11:11:41   作者:gh_xiaohe  
本文主要介绍了redis 手机验证码实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文主要介绍了redis 手机验证码实现示例,分享给大家,具体如下:

/**
 * @author gh  Email:@2495140780qq.com
 * @Description
 * @date 2021-11-10-21:12
 */
public class PhoneCode {
 
    public static void main(String[] args) {
        //模拟验证码发送
//        verifyCode("13796734562");
 
        //效验
        getRedisCode("13796734562", "740032");
 
 
    }
    //3.验证码的校验
    public static void getRedisCode(String phone,String code) {
        //从redis中获取验证码
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //验证码key
        String codeKey = "VerifyCode"+phone+":code";
        String redisCode = jedis.get(codeKey);
        //判断
        if(redisCode.equals(code)) {
            System.out.println("成功");
        }else {
            System.out.println("失败");
        }
        jedis.close();
 
    }
 
    //2.每个手机每天只能发送三次,验证码放到redis中,设置过期时间60
    public static void verifyCode(String phone) {//手机号
        //链接redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
 
        //拼接key
        //手机发送次数
        String countKey = "VerifyCode" + phone + ":count";//规则保证唯一,规则自己订
 
        //验证码key
        String codeKey = "VerifyCode" + phone + ":code";
 
        //每个手机每天只能发送三次
        String count = jedis.get(countKey);//手机发送次数
        if (count == null) {
            //没有发送次数,第一次发送
            //设置发送次数是1
            jedis.setex(countKey, 24*60*60, "1");
        }else if (Integer.parseInt(count) <= 2) {
            //发送次数 +1
            jedis.incr(countKey);
        }else if (Integer.parseInt(count) >2) {
            //发送三次,不能大发送
            System.out.println("今天发送次数已经超过三次");
            jedis.close();
            return;
 
        }
 
        //发送的验证放到redis中去
        String vcode = getCode();
        jedis.setex(codeKey,120,vcode);
        jedis.close();
    }
 
    //1.生成6位的验证码
    public static String getCode() {
        Random random = new Random();
        String code = "";
 
        for (int i = 0; i < 6; i++) {
            int rand = random.nextInt(10);   //10 以内的值
            code += rand;
        }
        return code;
    }
}

发送验证码 

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
1) "VerifyCode13796734562:count"
2) "VerifyCode13796734562:code"
127.0.0.1:6379> get VerifyCode13796734562:count   # 第一次获取验证码
"1"
127.0.0.1:6379> get VerifyCode13796734562:code    # 获取的验证码为
"478121"
127.0.0.1:6379> get VerifyCode13796734562:count
"2"
127.0.0.1:6379> get VerifyCode13796734562:code
"250610"
校验

到此这篇关于redis 手机验证码实现示例的文章就介绍到这了,更多相关redis 手机验证码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 缓存替换策略及应用(以Redis、InnoDB为例)

    缓存替换策略及应用(以Redis、InnoDB为例)

    本文以Redis、InnoDB为例给大家讲解缓存替换策略及应用,本文给大家提到五种置换策略,通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-07-07
  • Redis数据结构SortedSet的底层原理解析

    Redis数据结构SortedSet的底层原理解析

    这篇文章主要介绍了Redis数据结构SortedSet的底层原理解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Redis服务器的启动过程分析

    Redis服务器的启动过程分析

    这篇文章主要介绍了Redis服务器的启动过程分析,本文讲解了初始化Redis服务器全局配置、加载配置文件、初始化服务器、加载数据、开始网络监听等内容,需要的朋友可以参考下
    2015-04-04
  • redis初学者常见字符乱码问题及解决方案

    redis初学者常见字符乱码问题及解决方案

    这篇文章主要介绍了redis初学者常见字符乱码问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Spring Boot 整合Redis 实现优惠卷秒杀 一人一单功能

    Spring Boot 整合Redis 实现优惠卷秒杀 一人一单功能

    这篇文章主要介绍了Spring Boot 整合Redis 实现优惠卷秒杀 一人一单,在分布式系统下,高并发的场景下,会出现此类库存超卖问题,本篇文章介绍了采用乐观锁来解决,需要的朋友可以参考下
    2022-09-09
  • Redis Set 集合的实例详解

    Redis Set 集合的实例详解

    这篇文章主要介绍了 Redis Set 集合的实例详解的相关资料,Redis的Set是string类型的无序集合。集合成员是唯一的,并且不重复,需要的朋友可以参考下
    2017-08-08
  • 浅谈内存耗尽后Redis会发生什么

    浅谈内存耗尽后Redis会发生什么

    这篇文章主要介绍了浅谈内存耗尽后Redis会发生什么,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • IDEA初次连接Redis配置的实现

    IDEA初次连接Redis配置的实现

    本文主要介绍了IDEA初次连接Redis配置的实现,文中通过图文步骤介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • Redis与MySQL数据一致性问题的策略模式及解决方案

    Redis与MySQL数据一致性问题的策略模式及解决方案

    开发中,一般会使用Redis缓存一些常用的热点数据用来减少数据库IO,提高系统的吞吐量,本文将给大家介绍了Redis与MySQL数据一致性问题的策略模式及解决方案,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • windows下通过批处理脚本启动redis的操作

    windows下通过批处理脚本启动redis的操作

    本文主要给大家介绍了windows下通过批处理脚本启动redis的操作,windows下redis启动,需要进入redis安装目录,然后shift+右键,选择“在此处打开命令窗口”,然后输入redis-server.exe redis.conf,就可以启动redis了,文中有详细的图文参考,感兴趣的朋友可以参考下
    2023-12-12

最新评论