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 13 Redis
Redis延迟队列和分布式延迟队列的简答实现
May 13 Redis
详解redis分布式锁的这些坑
May 19 Redis
详解Redis主从复制实践
May 19 Redis
基于Redis的List实现特价商品列表功能
Aug 30 Redis
Redis字典实现、Hash键冲突及渐进式rehash详解
Sep 04 Redis
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
Mar 16 Redis
源码分析Redis中 set 和 sorted set 的使用方法
Mar 22 Redis
Redis 操作多个数据库的配置的方法实现
Mar 23 Redis
Redis数据同步之redis shake的实现方法
Apr 21 Redis
Redis实现分布式锁的五种方法详解
Jun 14 Redis
redis中lua脚本使用教程
Redis高并发防止秒杀超卖实战源码解决方案
Redis的字符串是如何实现的
SpringBoot集成Redis的思路详解
详解redis在微服务领域的贡献
详解Redis在SpringBoot工程中的综合应用
Oct 16 #Redis
Redis三种集群模式详解
You might like
也谈 PHP 和 MYSQL
2006/10/09 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
python删除特定文件的方法
2015/07/30 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
通过自学python能找到工作吗
2020/06/21 Python
详解Python流程控制语句
2020/10/28 Python
shell程序中如何注释
2012/02/17 面试题
大学新生军训个人的自我评价
2013/10/03 职场文书
办公室岗位职责
2014/02/12 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
大国崛起观后感
2015/06/02 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
Python道路车道线检测的实现
2021/06/27 Python
MySQL创建管理LIST分区
2022/04/13 MySQL