Redis模仿手机验证码发送的实现示例


Posted in Redis onNovember 02, 2021

本文主要介绍了Redis模仿手机验证码发送的实现示例,分享给大家,具体如下:

流程图

Redis模仿手机验证码发送的实现示例

一:添加jedis依赖包

Redis模仿手机验证码发送的实现示例

二:测试连接Redis服务是否成功

// 创建Jedis对象用于连接Redis服务(在服务器上通过redis-server需要指定配置文件:redis-server /etc/redis.conf)
Jedis jedis = new Jedis("192.168.119.128", 6379);
String value = jedis.ping();
System.out.println(value);
jedis.close();

三:编写生成验证码方法

/**
     * 生成验证码的方法
     * @return code
     */
    public static String getCode() {
        Random random = new Random();
        String code = "";
        for (int i = 0; i < 6; i++) {
            int num = random.nextInt(10);
            code += num;
        }
        System.out.println(code);
        return code;
    }

四:编写发送验证码方法

/**
     * 用户点击生成验证码并将其添加到redis中
     * @param phone
     */
    public static void sendVerifyCode(String phone) {
        Jedis jedis = new Jedis("192.168.119.128", 6379);
 
        // 手机号码的key,获取手机号码发送验证码次数
        String countKey = "VerifyCode" + phone + ":count";
        // 验证码的key,获取手机号码的验证码
        String codeKey = "VerifyCode" + phone + ":code";
 
        // 获取countKey判断当前手机号码是否可以发送验证码
        String count = jedis.get(countKey);
        if (count == null) {
            jedis.setex(countKey, 24 * 60 * 60, "1");
        } else if (Integer.parseInt(count) <= 2) {
            jedis.incr(countKey);
        } else if (Integer.parseInt(count) > 2) {
            System.out.println("当前手机号发送验证码次数超过上限,请明天再发送验证码");
            jedis.close();
        }
 
        String code = getCode();
        jedis.setex(codeKey, 120, code);
 
        jedis.close();
    }

五:编写校验验证码方法

/**
     * 用户输入手机号以及验证码进行校验
     * @param phone
     * @param code
     */
    public static void CustomerVerifyCode(String phone, String code) {
        Jedis jedis = new Jedis("192.168.119.128", 6379);
 
        String codeKey = "VerifyCode" + phone + ":code";
        String phoneVerifyCode = jedis.get(codeKey);
 
        if (phoneVerifyCode.equals(code)) {
            System.out.println("校验成功!");
        } else {
            System.out.println("校验失败!");
        }
 
        jedis.close();
    }

到此这篇关于Redis模仿手机验证码发送的实现示例的文章就介绍到这了,更多相关Redis模仿手机验证码发送内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
redis连接被拒绝的解决方案
Apr 12 Redis
redis限流的实际应用
Apr 24 Redis
redis 限制内存使用大小的实现
May 08 Redis
Django使用redis配置缓存的方法
Jun 01 Redis
springboot使用Redis作缓存使用入门教程
Jul 25 Redis
Redis中key的过期删除策略和内存淘汰机制
Apr 12 Redis
详解Redis的三种常用的缓存读写策略步骤
May 06 Redis
Redis基本数据类型List常用操作命令
Jun 01 Redis
一文教你快速生成MySQL数据库关系图
Jun 28 Redis
Redis+AOP+自定义注解实现限流
Jun 28 Redis
如何使用注解方式实现 Redis 分布式锁
Jul 23 Redis
Redis实战之Lettuce的使用技巧详解
Dec 24 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
Python使用matplotlib简单绘图示例
2018/02/01 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
django列表筛选功能的实现代码
2020/03/27 Python
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
门卫岗位安全职责
2013/12/13 职场文书
企业精神口号
2014/06/11 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
支行行长岗位职责
2015/02/15 职场文书
综合测评个人总结
2015/03/03 职场文书
催款通知书范文
2015/04/17 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android