Redis实现邮件激活码保存
在之前我们学习了用户注册发送邮箱激活码的功能,但是邮箱激活码往往是有有效期的,这个功能我们可以使用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实现邮件激活码保存相关推荐
- 注册时给用户发邮件激活码 , 以及登录操作
注册页面会有如下信息 而在数据库中,其实还有用户uid, 激活码code, 还有state表示用户的状态,如果state=1表示用户已激活,可以正常登陆, state的默认值是0,这个是在user这个 ...
- Java案例-用户注册邮箱验证将邮箱激活码存入redis功能实现
<–start–> 用户注册时,要求用户填写注册邮箱,然后后台向用户的注册邮箱中发送绑定邮件,并将激活码保存到redis中. 手机短信验证码因为时效期短,只需要将短信验证码存储到sessi ...
- 项目中qq邮件激活账号如何实现
项目中qq邮件激活账号如何实现 qq邮件激活账号功能展示: 1.注册页面: 注册成功页面: 查看邮箱: 点击激活后: qq邮件激活账号实现过程: 第一步在项目的pom.xml导入mail对应的mave ...
- 注册页面邮件发送激活码
接上一篇的点击注册按钮实现注册功能用户注册例题,当我们点击注册时,自动发送邮件给我注册的email账号里面,发送的是激活码: 直接在UserServiceImpl的register方法里面写发送邮件代 ...
- 踩坑nessus激活码-点击官方邮件链接不能获取到验证码
文章目录 起因 过程 解决处理 起因 因公司需要进行安全扫描相关环境的构建,对安全软件进行选型,安装试用 nessus . 过程 免费版本限制 16 个IP试用数,不符合试用要求,选择了 nessus ...
- 旅游网小案例:注册(邮件激活)
注册 分析 前端js //当表单提交时,调用所有的校验方法$("#registerForm").submit(function () {//表单校验if (checkUsernam ...
- 使用Cucumber+Rspec玩转BDD(2)——邮件激活
使用Cucumber+Rspec玩转BDD(2)--邮件激活 2009年3月2日 星期一 ### 温故知新 ### 前面我们已经完成了新用户注册功能的开发,为了方便我们后面的开发工作且不扰乱之前的工作 ...
- 免费获取慧炬虚拟操作系统(HopedotVOS)激活码
虚拟操作系统(HopedotVOS)是一个可移动的操作系统,它可以实现任何非Windows系统磁盘分区包括移动存储上安装大量的应用程序. 1.当我们在本机(非系统盘)上安装虚拟操作系统(Hopedot ...
- 一文教你学会实现以邮件激活的注册账户代码
实现思路 通常,我们在进行各大平台进行注册账户时,都会在邮箱收到一封激活邮件,而在点击其中的激活链接之后,我们就能够激活账户,否则,我们将无法正常使用账户,这使得服务平台所拥有的激活用户的邮件信息真实 ...
- Redis 数据结构-字典源码分析
2019独角兽企业重金招聘Python工程师标准>>> 相关文章 Redis 初探-安装与使用 Redis 数据结构-字符串源码分析 本文将从以下几个方面介绍 前言 字典结构图 字典 ...
最新文章
- opencv中的Rodrigues()函数
- HDU-2102 A计划 BFS
- 老蒋的 用WDCP 搭建
- 阿里Java面试答案【283页PDF文档免费领】
- linux手动安装unzip_怎样在Linux下搭建接口自动化测试平台?
- 2019年,有远见的程序员都在关注这些硬核公众号
- 《我也能做CTO之程序员职业规划》之二:做CTO的苹果定律
- android 呼吸灯权限_Android 呼吸灯效果
- python settings_python settings如何配置sqlite?
- Node.js:Node模块简介
- php 保存json格式数组 json_encode /u 不转义
- 2021年网络推广品牌营销渠道平台大全
- 工控c语言培训,[转载]最完整的工控培训、PLC培训教程大全
- java和eova的关系_eova ,一套jfinal开发框架,方便学习与 Jsp/Servlet 262万源代码下载- www.pudn.com...
- Android 汉字转拼音的多种实现方式
- 电影天堂爬去示例基础2
- 在GNU/Linux下将CD音乐转为mp3
- sbit在c语言中作用,sbit在单片机中的表示和作用?
- 给你一个整数数组 nums 。 如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。
- matlab x(n)16点DFT,[基于MATLAB的数字信号处理实例分析.doc