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持久化与主从复制的实践
Apr 27 Redis
详解Redis实现限流的三种方式
Apr 27 Redis
深入理解redis中multi与pipeline
Jun 02 Redis
详解Redis复制原理
Jun 04 Redis
Redis做数据持久化的解决方案及底层原理
Jul 15 Redis
Redis如何实现分布式锁
Aug 23 Redis
Redis 持久化 RDB 与 AOF的执行过程
Nov 07 Redis
Redis中缓存穿透/击穿/雪崩问题和解决方法
Dec 04 Redis
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
Mar 16 Redis
源码分析Redis中 set 和 sorted set 的使用方法
Mar 22 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
Yii中的cookie的发送和读取
2016/07/27 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python Paramiko模块的使用实际案例
2018/02/01 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
HTML5标签小集
2011/08/02 HTML / CSS
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
自主招生自荐书
2013/11/29 职场文书
出国签证在职证明
2014/01/16 职场文书
一年级班主任感言
2014/03/08 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
小学六年级毕业感言
2015/07/30 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang