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 26 Redis
Redisson实现Redis分布式锁的几种方式
Aug 07 Redis
解决Redis启动警告问题
Feb 24 Redis
解决linux下redis数据库overcommit_memory问题
Feb 24 Redis
Redis中有序集合的内部实现方式的详细介绍
Mar 16 Redis
redis数据一致性的实现示例
Mar 18 Redis
Redis 操作多个数据库的配置的方法实现
Mar 23 Redis
解决 Redis 秒杀超卖场景的高并发
Apr 12 Redis
Redis实战高并发之扣减库存项目
Apr 14 Redis
windows安装 redis 6.2.6最新步骤详解
Apr 26 Redis
关于Redis的主从复制及哨兵问题
Jun 16 Redis
浅谈Redis变慢的原因及排查方法
Jun 21 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
php分页函数
2006/07/08 PHP
比较全面的PHP数组的使用方法小结
2010/09/23 PHP
PHP学习 变量使用总结
2011/03/24 PHP
mysql总结之explain
2012/02/27 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
js获得鼠标的坐标值的方法
2013/03/13 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
详解Django通用视图中的函数包装
2015/07/21 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
便捷提取python导入包的属性方法
2018/10/15 Python
python中退出多层循环的方法
2018/11/27 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
放飞蜻蜓反思
2014/02/05 职场文书
感恩节活动策划方案
2014/05/16 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
升学宴学生答谢词
2015/01/05 职场文书
《静夜思》教学反思
2016/02/17 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
MySql开发之自动同步表结构
2021/05/28 MySQL
Python中异常处理用法
2021/11/27 Python
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL