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与MySQL双写一致性如何保证
Jun 26 Redis
Redis性能监控的实现
Jul 09 Redis
Redisson实现Redis分布式锁的几种方式
Aug 07 Redis
浅谈Redis的keys命令到底有多慢
Oct 05 Redis
使用RedisTemplat实现简单的分布式锁
Nov 20 Redis
redis的list数据类型相关命令介绍及使用
Jan 18 Redis
使用Redis实现点赞取消点赞的详细代码
Mar 20 Redis
Redis特殊数据类型bitmap位图
Jun 01 Redis
Redis实现短信验证码登录的示例代码
Jun 14 Redis
Redis+AOP+自定义注解实现限流
Jun 28 Redis
如何使用注解方式实现 Redis 分布式锁
Jul 23 Redis
Redis主从复制操作和配置详情
Sep 23 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
二招解决php乱码问题
2012/03/25 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
关于php中一些字符串总结
2016/05/05 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
js微信分享实现代码
2020/10/11 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
python实现爬取图书封面
2018/07/05 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
python中的for循环
2018/09/28 Python
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
Python之修改图片像素值的方法
2019/07/03 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
python实现经典排序算法的示例代码
2021/02/07 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
PHP如何自定义函数
2016/09/16 面试题
高三英语教学反思
2014/01/13 职场文书
2015年财务部工作总结
2015/04/10 职场文书
反邪教观后感
2015/06/11 职场文书