package com.atguigu.jedis;import redis.clients.jedis.Jedis;import java.util.Random;public class PhoneCode {public static void main(String[] args) {//模拟验证码发送verifyCode("13678765435");//模拟验证码校验//getRedisCode("13678765435","4444");}//3 验证码校验public static void getRedisCode(String phone,String code) {//从redis获取验证码Jedis jedis = new Jedis("39.103.193.185",6379);//验证码keyString codeKey = "VerifyCode"+phone+":code";String redisCode = jedis.get(codeKey);//判断if(redisCode.equals(code)) {System.out.println("成功");}else {System.out.println("失败");}jedis.close();}//2 每个手机每天只能发送三次,验证码放到redis中,设置过期时间120public static void verifyCode(String phone) {//连接redisJedis jedis = new Jedis("39.103.193.185",6379);//拼接key//手机发送次数keyString countKey = "VerifyCode"+phone+":count";//验证码keyString codeKey = "VerifyCode"+phone+":code";//每个手机每天只能发送三次String count = jedis.get(countKey);if(count == null) {//没有发送次数,第一次发送//设置发送次数是1jedis.setex(countKey,24*60*60,"1");} else if(Integer.parseInt(count)<=2) {//发送次数+1jedis.incr(countKey);} else if(Integer.parseInt(count)>2) {//发送三次,不能再发送System.out.println("今天发送次数已经超过三次");jedis.close();}//发送验证码放到redis里面String vcode = getCode();jedis.setex(codeKey,120,vcode);jedis.close();}//1 生成6位数字验证码public static String getCode() {Random random = new Random();String code = "";for(int i=0;i<6;i++) {int rand = random.nextInt(10);code += rand;}return code;}
}

利用redis保存验证码并设置过期时间相关推荐

  1. redis 存储数据不设置过期时间 会自动过期吗_Redis-数据淘汰策略持久化方式(RDB/AOF)Redis与Memcached区别...

    Redis与Memcached区别: 两者都是非关系型数据库.主要有以下不同: 数据类型: Memcached仅支持字符串类型. redis支持:String,List,set,zset,hash 可 ...

  2. redis hash结构如何设置过期时间

    Redis中有个设置时间过期的功能,即通过setex或者expire实现,目前redis没有提供hsetex()这样的方法,redis中过期时间只针对顶级key类型,对于hash类型是不支持的,这个时 ...

  3. 玩转Redis-干掉钉子户-没有设置过期时间的key

      <玩转Redis>系列文章 by zxiaofan主要讲述Redis的基础及中高级应用.本文是<玩转Redis>系列第[15]篇,最新系列文章请前往 公众号"zx ...

  4. stringredistemplate设置过期时间_Redis的过期删除策略和内存淘汰机制

    Redis的key可以设置过期时间,那是否意味着时间一到就会马上被删除呢? Redis的数据存储大小是有限的,假如内存不足Redis有什么应对策略呢? 本篇文章将介绍一下Redis的过期策略和内存淘汰 ...

  5. java redis设置过期时间_Redis的一些核心原理

    点关注,不迷路:持续更新Java相关技术及资讯!!! 一.Redis的单线程和高性能 Redis 单线程为什么还能这么快? 因为它所有的数据都在内存中,所有的运算都是内存级别的运算(纳秒),而且单线程 ...

  6. java如何保证redis设置过期时间的原子性_2020年4月Redis面试题和答案整理

    点关注,不迷路:持续更新Java相关技术及资讯!!! 关注.转发.评论头条号每天分享java 知识,私信回复"源码" 赠送Spring源码分析.Dubbo.Redis.Netty. ...

  7. redis如何设置定时过期_redis补充6之Redis 设置过期时间

    一般情况下,我们设置保存的缓存数据的时候都会设置一个过期时间. Redis 中有个设置时间过期的功能,即对存储在 Redis 数据库中的值可以设置一个过期时间.作为一个缓存数据库,这是非常实用的.如我 ...

  8. c# redis 如何设置过期时间_Redis Hash存储token、及设置过期时间

    相信大家在很多业务场景都会遇到对数据设置过期时间,如安全认证token.短信验证码等.一般我们的解决有几种:存redis.存数据库.实时计算(如JWT),不管使用哪种方式,需求就是过期了对数据的清理. ...

  9. c# redis hashid如何设置过期时间_Redis数据库实现原理(划重点)

    Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每一项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库, ...

最新文章

  1. C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)
  2. Fedora 30系统的升级方法
  3. highcharts加载数据库数据(java版)
  4. 快速指南:剖析JBoss BPM跨进程通信
  5. 线程可警告状态以及APC队列
  6. Image Cup,我和几位师兄一起奋战!
  7. 【Flink】Flink 上海会议 【视频笔记】
  8. 【实践】美团点评效果广告实验配置平台的设计与实现
  9. python中reshape_python numpy reshape用法及代码示例
  10. Android上的抓包工具 Packet Capture
  11. 极限学习机(ELM)从原理到程序实现(附完整代码)
  12. 2017百度之星资格赛总结
  13. 确定性的丧失——20世纪新启蒙运动的来龙去脉
  14. 汉英词典python
  15. 关于Ajax回调函数返回值判断的问题
  16. 树莓派安装中文输入法
  17. ENVI软件图像放缩出现重影的解决办法
  18. 学生管理系统IPO图_南昌市2020年小升初信息管理系统学生家长操作说明及采集流程...
  19. FPGA控制TDC-GPX2时间间隔测量(三)
  20. 可追踪评估模型TAM的评估

热门文章

  1. 数据结构---排序算法的总结
  2. complementary prior
  3. Polynomial(2019南昌邀请赛)(拉格朗日插值)
  4. Educational Codeforces Round 106 (Rated for Div. 2) C. Minimum Grid Path 奇偶 + 思维
  5. P3301 [SDOI2013]方程
  6. Game of Swapping Numbers
  7. 牛客题霸 [字符串的排列] C++题解/答案
  8. [2021-06-19] 提高组新手副本Ⅱ(联网,欧几里得,分解树,开关灯)
  9. UOJ#33-[UR #2]树上GCD【长链剖分,根号分治】
  10. jzoj4274-终章-剑之魂【位运算,贪心】