1,下载安装redis(省略)
2,导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
3,编写代码
- 在配置文件中添加(显示在下面的格式有些问题)
redis: host: 47.107.41.60
- 在userService中添加
@Autowired
private RedisTemplate redisTemplate;
- 发送验证码的基本逻辑
public void sendMessage(String modile) {
//随机生成6位验证码
int max = 999999;
int min = 111111;
Random random = new Random();
int code = random.nextInt(max);
if (code < min)
code = code + min;
logger.info("{}的验证码是{}", modile, code);
System.out.println("验证码是{}"+code);
//设置3分钟过期
redisTemplate.opsForValue().set("sms" + modile, code+"", 10, TimeUnit.MINUTES);
//todo 将验证码和手机号放入rabitmq中
}
在上面的代码中将验证码存入redis,并设置验证码的过期时间
- 注册的逻辑
public void register(User user, String code) {
//从redis中获取验证码
String s = (String) redisTemplate.opsForValue().get("sms" + user.getMobile());
if (s == null)
throw new RuntimeException("请发送验证码");
if (s.equals(code)) {
logger.info("验证码匹配成功");
user.setId(idWorker.nextId() + "");
user.setFollowcount(0);//关注数
user.setFanscount(0);//粉丝数
user.setOnline(0L);//在线时长
user.setRegdate(new Date());//注册日期
user.setUpdatedate(new Date());//更新日期
user.setLastdate(new Date());//最后登陆日期
userDao.save(user);
}
else
logger.info("验证码不正确");
}
**重点:
1,向redis中存数据: **
redisTemplate.opsForValue().set(“sms” + modile, code+"", 10, TimeUnit.MINUTES);
2,从redis中取数据:
String s = (String) redisTemplate.opsForValue().get(“sms” + user.getMobile());
注意:
在存储手机号的时候,要使用long或string类型
如果redis是在阿里云安装的,需要添加安全组配置规则,redis端口号是4379