Redis模仿发送手机验证码功能
短信预约 -IT技能 免费直播动态提醒
流程图
一:添加jedis依赖包
二:测试连接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();
三:编写生成验证码方法
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;
}
四:编写发送验证码方法
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();
}
五:编写校验验证码方法
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发送手机验证码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341