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 15 Redis
Redis缓存-序列化对象存储乱码问题的解决
Jun 21 Redis
厉害!这是Redis可视化工具最全的横向评测
Jul 15 Redis
浅谈redis整数集为什么不能降级
Jul 25 Redis
Redis分布式锁Redlock的实现
Aug 07 Redis
redis中lua脚本使用教程
Nov 01 Redis
Redis中缓存穿透/击穿/雪崩问题和解决方法
Dec 04 Redis
解决linux下redis数据库overcommit_memory问题
Feb 24 Redis
Redis中有序集合的内部实现方式的详细介绍
Mar 16 Redis
muduo TcpServer模块源码分析
Apr 26 Redis
详解Redis的三种常用的缓存读写策略步骤
May 06 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
python实现的系统实用log类实例
2015/06/30 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
Python3中详解fabfile的编写
2018/06/24 Python
python组合无重复三位数的实例
2018/11/13 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
2015年见习期个人工作总结
2015/05/28 职场文书
教师节简报
2015/07/20 职场文书
Java 多态分析
2022/04/26 Java/Android
Mysql中mvcc各场景理解应用
2022/08/05 MySQL