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高级数据类型Hyperloglog、Bitmap的使用
May 24 Redis
Redis Cluster 字段模糊匹配及删除
May 27 Redis
Windows下redis下载、redis安装及使用教程
Jun 02 Redis
Redis可视化客户端小结
Jun 10 Redis
比较几种Redis集群方案
Jun 21 Redis
k8s部署redis cluster集群的实现
Jun 24 Redis
在redisCluster中模糊获取key方式
Jul 09 Redis
Redis源码阅读:Redis字符串SDS详解
Jul 15 Redis
基于Redis结合SpringBoot的秒杀案例详解
Oct 05 Redis
CentOS8.4安装Redis6.2.6的详细过程
Nov 20 Redis
关于使用Redisson订阅数问题
Jan 18 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
S900/ ETON E1-XM 收音机
2021/03/02 无线电
oracle资料库函式库
2006/10/09 PHP
PHP新手上路(五)
2006/10/09 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
PHP安全下载文件的方法
2016/04/07 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
js自带函数备忘 数组
2006/12/29 Javascript
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
js检测用户输入密码强度
2015/10/22 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
python中正则的使用指南
2016/12/04 Python
pytorch 数据集图片显示方法
2018/07/26 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
python中什么是面向对象
2020/06/11 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
台湾森森购物网:U-mall
2017/10/16 全球购物
电子信息专业自荐书
2014/02/04 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
Mysql 一主多从的部署
2022/05/20 MySQL