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遍历所有key的两个命令(KEYS 和 SCAN)
Apr 12 Redis
redis通过6379端口无法连接服务器(redis-server.exe闪退)
May 08 Redis
浅谈Redis存储数据类型及存取值方法
May 08 Redis
redis哨兵常用命令和监控示例详解
May 27 Redis
浅谈Redis中的RDB快照
Jun 29 Redis
Redis 彻底禁用RDB持久化操作
Jul 09 Redis
嵌入式Redis服务器在Spring Boot测试中的使用教程
Jul 21 Redis
Redis Stream类型的使用详解
Nov 11 Redis
redis的list数据类型相关命令介绍及使用
Jan 18 Redis
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
Mar 16 Redis
Redis实现订单过期删除的方法步骤
Jun 05 Redis
如何使用注解方式实现 Redis 分布式锁
Jul 23 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
javascript URL锚点取值方法
2009/02/25 Javascript
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
JS动态添加选项案例分析
2016/10/17 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
setTimeout与setInterval的区别浅析
2019/03/23 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
餐厅考勤管理制度
2014/01/28 职场文书
电工技术比武方案
2014/05/11 职场文书
机电系毕业生求职信
2014/07/11 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
田径运动会通讯稿
2015/07/18 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
公司酒会致辞
2015/07/30 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python
Python进程间的通信之语法学习
2022/04/11 Python
python 使用pandas读取csv文件的方法
2022/12/24 Python