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主从复制实践
May 19 Redis
redis哨兵常用命令和监控示例详解
May 27 Redis
redis客户端实现高可用读写分离的方式详解
Jul 04 Redis
Redis Cluster集群动态扩容的实现
Jul 15 Redis
关于redisson缓存序列化几枚大坑说明
Aug 04 Redis
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
Feb 12 Redis
面试分析分布式架构Redis热点key大Value解决方案
Mar 13 Redis
Redis集群节点通信过程/原理流程分析
Mar 18 Redis
在Centos 8.0中安装Redis服务器的教程详解
Mar 21 Redis
redis 解决库存并发问题实现数量控制
Apr 08 Redis
Redis keys命令的具体使用
Jun 05 Redis
Redis实现短信验证码登录的示例代码
Jun 14 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
《APMServ 5.1.2》使用图解
2006/10/23 PHP
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
组合算法的PHP解答方法
2012/02/04 PHP
php后门URL的防范
2013/11/12 PHP
php二维数组转成字符串示例
2014/02/17 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
2015/12/03 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python实现遍历文件夹修改文件后缀
2018/08/28 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
学校安全防火方案
2014/06/07 职场文书
付款委托书范本
2014/10/05 职场文书
教师党员整改措施
2014/10/24 职场文书
小学科学教学计划
2015/01/21 职场文书
我收到了德劲DE1107
2022/04/05 无线电