在之前我们学习了用户注册发送邮箱激活码的功能,但是邮箱激活码往往是有有效期的,这个功能我们可以使用redis实现:
1.redis的介绍:
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
其实简单的说redis就是本质上就是一个key-value数据库,比mysql,oracle简单很多,它是基于内存操作的,所以效率很高,读写操作达到10万次/s,是已知性能最快的Key-Value DB,并且可以存储多种数据结构,还能设置expire时间;我们可以从官网上下载redis的压缩包: http://redis.io/download

2.spring整合redis
1.在pom文件中引入依赖:

<!-- redis nosql 内存数据库 --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>${jedis.version}</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.4.1.RELEASE</version></dependency>

2.配置 applicationContext.xml 配置 redisTemplate

    <!-- jedis 连接池配置 --><bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">  <property name="maxIdle" value="300" />        <property name="maxWaitMillis" value="3000" />  <property name="testOnBorrow" value="true" />  </bean>  <!-- jedis 连接工厂 --><bean id="redisConnectionFactory"  class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"  p:host-name="localhost" p:port="6379" p:pool-config-ref="poolConfig"  p:database="0" />  <!-- spring data 提供 redis模板  --><bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">  <property name="connectionFactory" ref="redisConnectionFactory" /> <!-- 如果不指定 Serializer   --><property name="keySerializer"><bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /></property><property name="valueSerializer"><bean class="org.springframework.data.redis.serializer.StringRedisSerializer"> </bean></property> </bean>

为了方便,我们可以将redis的配置文件抽取出来,在applicationContext.xml中引入即可;
3.书写逻辑代码:
我们在 CustomerAction 提供发送邮件代码,邮件中生成激活码,激活码保存到 redis 中
需要注入RedisTemplate

@AutoWired
private RedisTemplate<String,String> redisTemplate;

将邮箱激活码保存在redis中,设置时间24小时:

    // 发送一封激活邮件// 生成激活码String activecode = RandomStringUtils.randomNumeric(32);// 将激活码保存到redis,设置24小时失效
redisTemplate.opsForValue().set(model.getTelephone(), activecode,24,TimeUnit.HOURS);

当用户激活邮件时,我们从redis中取出保存的activecode即可

    // 判断激活码是否有效String activecodeRedis = redisTemplate.opsForValue().get(model.getTelephone());if (activecodeRedis == null || !activecodeRedis.equals(activecodeRedis)) {// 激活码无效ServletActionContext.getResponse().getWriter().println("激活码无效,请登录系统,重新绑定邮箱!");

Redis实现邮件激活码保存相关推荐

  1. 注册时给用户发邮件激活码 , 以及登录操作

    注册页面会有如下信息 而在数据库中,其实还有用户uid, 激活码code, 还有state表示用户的状态,如果state=1表示用户已激活,可以正常登陆, state的默认值是0,这个是在user这个 ...

  2. Java案例-用户注册邮箱验证将邮箱激活码存入redis功能实现

    <–start–> 用户注册时,要求用户填写注册邮箱,然后后台向用户的注册邮箱中发送绑定邮件,并将激活码保存到redis中. 手机短信验证码因为时效期短,只需要将短信验证码存储到sessi ...

  3. 项目中qq邮件激活账号如何实现

    项目中qq邮件激活账号如何实现 qq邮件激活账号功能展示: 1.注册页面: 注册成功页面: 查看邮箱: 点击激活后: qq邮件激活账号实现过程: 第一步在项目的pom.xml导入mail对应的mave ...

  4. 注册页面邮件发送激活码

    接上一篇的点击注册按钮实现注册功能用户注册例题,当我们点击注册时,自动发送邮件给我注册的email账号里面,发送的是激活码: 直接在UserServiceImpl的register方法里面写发送邮件代 ...

  5. 踩坑nessus激活码-点击官方邮件链接不能获取到验证码

    文章目录 起因 过程 解决处理 起因 因公司需要进行安全扫描相关环境的构建,对安全软件进行选型,安装试用 nessus . 过程 免费版本限制 16 个IP试用数,不符合试用要求,选择了 nessus ...

  6. 旅游网小案例:注册(邮件激活)

    注册 分析 前端js //当表单提交时,调用所有的校验方法$("#registerForm").submit(function () {//表单校验if (checkUsernam ...

  7. 使用Cucumber+Rspec玩转BDD(2)——邮件激活

    使用Cucumber+Rspec玩转BDD(2)--邮件激活 2009年3月2日 星期一 ### 温故知新 ### 前面我们已经完成了新用户注册功能的开发,为了方便我们后面的开发工作且不扰乱之前的工作 ...

  8. 免费获取慧炬虚拟操作系统(HopedotVOS)激活码

    虚拟操作系统(HopedotVOS)是一个可移动的操作系统,它可以实现任何非Windows系统磁盘分区包括移动存储上安装大量的应用程序. 1.当我们在本机(非系统盘)上安装虚拟操作系统(Hopedot ...

  9. 一文教你学会实现以邮件激活的注册账户代码

    实现思路 通常,我们在进行各大平台进行注册账户时,都会在邮箱收到一封激活邮件,而在点击其中的激活链接之后,我们就能够激活账户,否则,我们将无法正常使用账户,这使得服务平台所拥有的激活用户的邮件信息真实 ...

  10. Redis 数据结构-字典源码分析

    2019独角兽企业重金招聘Python工程师标准>>> 相关文章 Redis 初探-安装与使用 Redis 数据结构-字符串源码分析 本文将从以下几个方面介绍 前言 字典结构图 字典 ...

最新文章

  1. opencv中的Rodrigues()函数
  2. HDU-2102 A计划 BFS
  3. 老蒋的 用WDCP 搭建
  4. 阿里Java面试答案【283页PDF文档免费领】
  5. linux手动安装unzip_怎样在Linux下搭建接口自动化测试平台?
  6. 2019年,有远见的程序员都在关注这些硬核公众号
  7. 《我也能做CTO之程序员职业规划》之二:做CTO的苹果定律
  8. android 呼吸灯权限_Android 呼吸灯效果
  9. python settings_python settings如何配置sqlite?
  10. Node.js:Node模块简介
  11. php 保存json格式数组 json_encode /u 不转义
  12. 2021年网络推广品牌营销渠道平台大全
  13. 工控c语言培训,[转载]最完整的工控培训、PLC培训教程大全
  14. java和eova的关系_eova ,一套jfinal开发框架,方便学习与 Jsp/Servlet 262万源代码下载- www.pudn.com...
  15. Android 汉字转拼音的多种实现方式
  16. 电影天堂爬去示例基础2
  17. 在GNU/Linux下将CD音乐转为mp3
  18. sbit在c语言中作用,sbit在单片机中的表示和作用?
  19. 给你一个整数数组 nums 。 如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。
  20. matlab x(n)16点DFT,[基于MATLAB的数字信号处理实例分析.doc

热门文章

  1. 21接力题典1800 数一 重积分 P46 T18
  2. Sparksql练习题
  3. spring定时器的简单实用
  4. 100道MySQL数据库经典面试题解析(收藏版)
  5. 斗鱼mac html5,斗鱼直播伴侣ios苹果版使用教程_苹果版斗鱼直播伴侣怎么用_3DM手游...
  6. 力扣5.8每日一题——状压dp
  7. Python 量化投资实战教程(5) — A股回测KDJ 策略
  8. spring boot英语在线学习系统毕业设计-附源码211714
  9. 单片机 矩阵式按键
  10. sqlplus操作命令