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 Cluster 字段模糊匹配及删除
May 27 Redis
Windows中Redis安装配置流程并实现远程访问功能
Jun 07 Redis
redis cluster支持pipeline的实现思路
Jun 23 Redis
Redis 彻底禁用RDB持久化操作
Jul 09 Redis
嵌入式Redis服务器在Spring Boot测试中的使用教程
Jul 21 Redis
Redis分布式锁Redlock的实现
Aug 07 Redis
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
Mar 16 Redis
redis数据结构之压缩列表
Mar 21 Redis
windows安装 redis 6.2.6最新步骤详解
Apr 26 Redis
Redis实现短信验证码登录的示例代码
Jun 14 Redis
Redis唯一ID生成器的实现
Jul 07 Redis
python中使用redis用法详解
Dec 24 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
PHP数据库操作面向对象的优点
2006/10/09 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
php头像上传预览实例代码
2017/05/02 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
React Router基础使用
2017/01/17 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
详解使用 pyenv 管理多个版本 python 环境
2017/10/19 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
对python Tkinter Text的用法详解
2018/10/11 Python
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
毕业生教师求职信
2013/10/20 职场文书
质检部经理岗位职责
2014/02/19 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
客户付款通知书
2015/04/23 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL