使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
环境准备:虚拟机Linux系统,redis安装在虚拟机中。
前提条件:虚拟机开启、redis开启。需要在pom中加入jedis依赖
1、代码
package com.jedis;
import redis.clients.jedis.Jedis;
import java.util.Random;
public class JedisTestRedis {
public static void main(String[] args) {
//模拟发送
verifyCode("18548375642");
// getReidsCode("18548375642","11684");
// System.out.println(getRandom());
}
//3、验证验证码
public static void getReidsCode(String phone,String code){
//连接redis
Jedis jedis = new Jedis("虚拟机地址",6379);
jedis.auth("123456");
//验证码
String codeKey = "verifyCode"+phone+"code";
String redisCode = jedis.get(codeKey);
//判断
if(redisCode.equals(code)){
System.out.println("成功");
}else{
System.out.println("失败");
}
jedis.close();
}
public static void verifyCode(String phone){
//连接redis
Jedis jedis = new Jedis("虚拟机地址",6379);
jedis.auth("123456");
//手机发送次数key
String countKey = "verifyCode"+phone+"count";
//验证码
String codeKey = "verifyCode"+phone+"code";
//每个手机每天发送三次
String count = jedis.get(countKey);
if(count == null){
//第一次发送、设置次数1
jedis.setex(countKey,24*60*60,"1");
}else if(Integer.parseInt(count)<=2){
//发送次数加1
jedis.incr(countKey);
}else if(Integer.parseInt(count)>2){
System.out.println("发送次数已经达到三次");
jedis.close();
return;
}
//发送验证码放到redis中
String vcode = getRandom();
System.out.println(vcode);
jedis.setex(codeKey,120,vcode);
jedis.close();
}
//六位数验证码
public static String getRandom(){
Random random = new Random();
String code ="";
for(int i=0;i<6;i++){
int rand = random.nextInt(10);
code+=rand;
}
return code;
}
}
2、测试结果
2.1、第一次发送

2.2、填写正确的验证码

2.3、填写错误的验证码

连续发送多次验证码

使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)的更多相关文章
- 如何在Windows、Linux系统中安装Redis
一:Windos下安装Redis并设置自动启动 1.下载windows版本的Redis 去官网找了很久,发现原来在官网上可以下载的windows版本的,现在官网已经没有windows版本的下载地址,只 ...
- 在安卓手机上安装完整kali linux系统
俗话说,没图说个JB.好我马上上图 提醒:我在这里只是提供一个思路过程,希望可以帮到你,同时我也做一个记录,有任何问题欢迎 0.0.:I87OI94664 威信 :Z2tsYmI1MjA= (b ...
- 在linux系统中安装redis
使用的工具是 连接上虚拟机,进入安装文件的目录 进入redis压缩包中 将压缩包解压: tar -zxvf redis-2.8.3.tar.gz 进入这个文件中: cd redis-2.8.3 进入 ...
- Redis学习笔记(一) ---- Linux系统中部署Redis存储系统
Redis 一.Redis简介 1.Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合 ...
- linux系统中 redis 保存数据的5种形式 linux后端模式启动 jedis无法通过IP地址和端口号访问如何修改linux防火墙
vim修改redis.conf配置文件(我的已经复制到虚拟机的/usr/local/redis/bin目录下)为daemonize yes, 以后端模式启动 ./redis-server redis. ...
- Redis在linux系统中的优化
通常来看,Redis开发和运维人员更加关注的是Redis本身的一些配置优化,例如AOF和RDB的配置优化.数据结构的配置优化等,但是对于操作系统是否需要针对Redis做一些配置优化不甚了解或者不太关心 ...
- 在linux系统中如何通过shell脚本批量设置redis键值对
业务逻辑:批量设置redis中手机号的验证码为888888: 准备shell脚本如下:将18888888100~18888888110的手机号验证码设置为888888: #!/bin/bash ;i& ...
- 最新版redis的安装及配置 linux系统
1.redis下载 官网地址:https://redis.io/download 百度云地址:链接:http://pan.baidu.com/s/1c1Hu2gK 密码:h17z 2.解压 [root ...
- Linux系统中Redis和Tomcat的PID文件路径设置
Tomcat: /bin/catalina.sh 文件头注释下面添加一行:CATALINA_PID=/var/run/tomcat.pid Redis: redis.conf配置文件里面搜索pidfi ...
随机推荐
- MODBUS转PROFINET网关将电力智能监控仪表接入PROFINET网络案例
本案例控制的主要对象是变送器的显示与报警.系统主PLC 选用西门子CPU,通过小疆智控MODBUS 转 PROFINET网关GW-PN5001采集IM300电力智能监控仪数据. 1.首先加入 GSD ...
- 杭州思科对 Apache DolphinScheduler Alert 模块的改造
杭州思科已经将 Apache DolphinScheduler 引入公司自建的大数据平台.目前,杭州思科大数据工程师 李庆旺 负责 Alert 模块的改造已基本完成,以更完善的 Alert 模块适应实 ...
- Luogu1502 窗口的星星 (线段树扫描线)
将每个点拓展为矩形,将\(y\)离散,延\(x\)轴扫描,每次更新最值 用了一百年的pushdown操作疑似有问题,亦或这道题特殊,我乱改了pushdown位置就过了,我能怎么办,WA了一发,y数组没 ...
- Shell 脚本报错 line x: [xxx: command not found
[root@VM-0-6-centos sh_scripts]# bash val.sh username: hello world! val.sh: line 5: [hello: command ...
- HTML初学者小知识
引用js <script src="链接/js代码位置" type="text/javascript"></script> 引用css ...
- 源码(chan,map,GMP,mutex,context)
目录 1.chan原理 1.1 chan底层数据结构 1.2 创建channel原理 1.3 写入channel原理 1.4 读channel原理 1.5 关闭channel原理 1.6 总结 2.m ...
- .Net之接口小知识
目的 通过一个简单的项目,在原来的文章基础上完善一下常用的几种WebApi编写方式以及请求方式,一方面是用于给我一个前端朋友用来学习调用接口,另一方面让我测试HttpClient的一些效果. 本文示例 ...
- aspnetcore6.0源代码编译调试
虽然编译源码折腾了几个时间(卡在restore),最后还是跑起来了aspnetcore6.0mvc源码项目,下面说步骤,前提是网络能连外,对于不能连外的懒得折腾. 第一步 电脑找个地克隆下GitHub ...
- 图解 Kubernetes Ingress
文章转载自:https://www.qikqiak.com/post/visually-explained-k8s-ingress/ 原文链接: https://codeburst.io/kubern ...
- 给 SSH 启用二次身份验证
转载自:https://mp.weixin.qq.com/s/ssuhFbfaHxxzGmLg6Y2MjA 目前来说,二次验证(这里就不做过多解释了)是比较常用的安全手段,通过设置二次验证(谷歌或其他 ...