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 08 Redis
基于Redis延迟队列的实现代码
May 13 Redis
Redis 配置文件重要属性的具体使用
May 20 Redis
Redis缓存-序列化对象存储乱码问题的解决
Jun 21 Redis
Redis之RedisTemplate配置方式(序列和反序列化)
Mar 13 Redis
面试分析分布式架构Redis热点key大Value解决方案
Mar 13 Redis
Redis集群节点通信过程/原理流程分析
Mar 18 Redis
基于Redis6.2.6版本部署Redis Cluster集群的问题
Apr 01 Redis
redis调用二维码时的不断刷新排查分析
Apr 01 Redis
Redis实现分布式锁的五种方法详解
Jun 14 Redis
基于Redission的分布式锁实战
Aug 14 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
当海贼王变成JOJO风
2020/03/02 日漫
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
php 使用array函数实现分页
2015/02/13 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
python实现探测socket和web服务示例
2014/03/28 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
现金出纳岗位职责
2014/03/15 职场文书
敬老模范事迹
2014/05/21 职场文书
工商管理自荐书
2014/07/06 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
自荐信模板大全
2015/03/27 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python