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
Redis5之后版本的高可用集群搭建的实现
Apr 27 Redis
基于Redis延迟队列的实现代码
May 13 Redis
详解Redis瘦身指南
May 26 Redis
详解缓存穿透击穿雪崩解决方案
May 28 Redis
Redis 彻底禁用RDB持久化操作
Jul 09 Redis
缓存替换策略及应用(以Redis、InnoDB为例)
Jul 25 Redis
Redis分布式锁Redlock的实现
Aug 07 Redis
Redis三种集群模式详解
Oct 05 Redis
使用RedisTemplat实现简单的分布式锁
Nov 20 Redis
使用Redis实现点赞取消点赞的详细代码
Mar 20 Redis
在Centos 8.0中安装Redis服务器的教程详解
Mar 21 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python web基础之加载静态文件实例
2018/03/20 Python
Python饼状图的绘制实例
2019/01/15 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
英智兴达软件测试笔试题
2016/10/12 面试题
临床医学大学生求职信
2013/09/28 职场文书
大课间活动制度
2014/01/18 职场文书
小学生手册家长评语
2014/04/16 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
给校长的建议书400字
2014/05/15 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
值班管理制度范本
2015/08/06 职场文书
企业年会祝酒词
2015/08/11 职场文书
Python基础之进程详解
2021/05/21 Python
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js