发送短信功能

短信微服务已经准备好,我们就可以继续编写用户中心接口了。

接口说明

这里的业务逻辑是这样的:

  • 1)我们接收页面发送来的手机号码

  • 2)生成一个随机验证码

  • 3)将验证码保存在服务端

  • 4)发送短信,将验证码发送到用户手机

那么问题来了:验证码保存在哪里呢?

验证码有一定有效期,一般是5分钟,我们可以利用Redis的过期机制来保存。

redis安装和配置

安装

  • 下载安装包课前资料提供的安装包,或者:官网下载建议上传到我们的home下:/usr/local/learn

  • 解压

 tar -xvf redis-4.0.9.tar.gz

编译安装

 mv redis-4.0.9 rediscd redismake && make install

配置

修改安装目录下的redis.conf文件

vim redis.conf

修改以下配置:

#bind 127.0.0.1 # 将这行代码注释,监听所有的ip地址,外网可以访问
protected-mode no # 把yes改成no,允许外网访问
daemonize yes # 把no改成yes,后台运行

启动或停止

redis提供了服务端命令和客户端命令:

  • redis-server 服务端命令,可以包含以下参数:start 启动stop 停止

  • redis-cli 客户端控制台,包含参数:-h xxx 指定服务端地址,缺省值是127.0.0.1-p xxx 指定服务端端口,缺省值是6379

设置开机启动

1) 输入命令,新建文件

vim /etc/init.d/redis

输入下面内容:

#!/bin/sh
# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
PATH=/usr/local/bin:/sbin:/usr/bin:/binREDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cliPIDFILE=/var/run/redis.pidCONF="/usr/local/learn/redis/redis.conf"case "$1" in  start)  if [ -f $PIDFILE ]  then  echo "$PIDFILE exists, process is already running or crashed"  else  echo "Starting Redis server..."  $EXEC $CONF  fi  if [ "$?"="0" ]   then  echo "Redis is running..."  fi  ;;  stop)  if [ ! -f $PIDFILE ]  then  echo "$PIDFILE does not exist, process is not running"  else  PID=$(cat $PIDFILE)  echo "Stopping ..."  $REDIS_CLI -p $REDISPORT SHUTDOWN  while [ -x ${PIDFILE} ]  do  echo "Waiting for Redis to shutdown ..."  sleep 1  done  echo "Redis stopped"  fi  ;;  restart|force-reload)  ${0} stop  ${0} start  ;;  *)  echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  exit 1
esac

然后保存退出

注意:以下信息需要根据安装目录进行调整:

EXEC=/usr/local/bin/redis-server # 执行脚本的地址

REDIS_CLI=/usr/local/bin/redis-cli # 客户端执行脚本的地址

PIDFILE=/var/run/redis.pid # 进程id文件地址

CONF="/usr/local/src/redis-3.0.2/redis.conf" #配置文件地址

2)设置权限

chmod 755 /etc/init.d/redis

3)启动测试

/etc/init.d/redis start

启动成功会提示如下信息:

Starting Redis server...
Redis is running...

4)设置开机自启动

chkconfig --add /etc/init.d/redis
chkconfig redis on

Spring Data Redis

官网:http://projects.spring.io/spring-data-redis/

Spring Data Redis,是Spring Data 家族的一部分。 对Jedis客户端进行了封装,与spring进行了整合。可以非常方便的来实现redis的配置和操作。

RedisTemplate基本操作

Spring Data Redis 提供了一个工具类:RedisTemplate。里面封装了对于Redis的五种数据结构的各种操作,包括:

  • redisTemplate.opsForValue() :操作字符串

  • redisTemplate.opsForHash() :操作hash

  • redisTemplate.opsForList():操作list

  • redisTemplate.opsForSet():操作set

  • redisTemplate.opsForZSet():操作zset

其它一些通用命令,如expire,可以通过redisTemplate.xx()来直接调用

5种结构:

  • String:等同于java中的,Map<String,String>

  • list:等同于java中的Map<String,List<String>>

  • set:等同于java中的Map<String,Set<String>>

  • sort_set:可排序的set

  • hash:等同于java中的:`Map<String,Map<String,String>>

StringRedisTemplate

RedisTemplate在创建时,可以指定其泛型类型:

  • K:代表key 的数据类型

  • V: 代表value的数据类型

注意:这里的类型不是Redis中存储的数据类型,而是Java中的数据类型,RedisTemplate会自动将Java类型转为Redis支持的数据类型:字符串、字节、二进制等等。

不过RedisTemplate默认会采用JDK自带的序列化(Serialize)来对对象进行转换。生成的数据十分庞大,因此一般我们都会指定key和value为String类型,这样就由我们自己把对象序列化为json字符串来存储即可。

因为大部分情况下,我们都会使用key和value都为String的RedisTemplate,因此Spring就默认提供了这样一个实现:

测试

需要在项目中引入Redis启动器:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

然后在配置文件中指定Redis地址:

spring:redis:host: 192.168.56.101

redis的安装及springDataRedis相关推荐

  1. Redis 的安装及企业级应用

    01_初识 Reids 1. 认识 NoSQL (非关系型数据库) 关系型数据库与非关系型数据库对比 SQL NoSQL 数据结构 结构化 非结构化 数据关联 关联 无关联 查询方式 SQL 查询 非 ...

  2. Linux下redis的安装(适用centos)

    转自:https://www.cnblogs.com/_popc/p/3684835.html 第一部分:安装redis  希望将redis安装到此目录 1 /usr/local/redis 希望将安 ...

  3. Redis 入门安装(Linux)

    Redis 入门安装(Linux) 备注:该案例讲解基于CentOS6.5.Reids3.2.8 Redis 官网 中文地址:http://www.redis.cn/ 英文地址:https://red ...

  4. Redis初学:1(NoSQL的简介和Redis的安装)

    什么是NoSQL NoSQL数据库意即:Not Only SQL 不仅仅是SQL,它区别于传统的关系型数据库,储存方式按照的是key-value的形式存储数据,这个我们可以联想到我们以前学过的Hash ...

  5. Linux下redis的安装

    原文出处:http://www.cnblogs.com/_popc/p/3684835.html 第一步:redis的安装 希望将redis安装到此目录 1 /usr/local/redis 希望将安 ...

  6. Redis、Redis+sentinel安装(Ubuntu 14.04下Redis安装及简单测试)

    Ubuntu下Redis安装两种安装方式: 1.apt-get方式 步骤: 以root权限登录,切换到/usr目录下. 接下来输入命令,apt-get install redis-server,如图: ...

  7. redis的安装以及常见运用场景

    2019独角兽企业重金招聘Python工程师标准>>> 1.redis的安装 Window 下安装 下载地址:https://github.com/MSOpenTech/redis/ ...

  8. 浅谈Redis及其安装配置

    一.Redis的介绍 二.Redis的安装配置 三.Redis的配置文件说明 四.Redis的简单操作 简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型. ...

  9. linux redis数据库安装配置,Linux系统中redis的安装配置步骤

    Linux系统中redis的安装配置步骤 发布时间:2020-06-23 10:13:36 来源:亿速云 阅读:87 作者:Leah 这篇文章将为大家详细讲解有关Linux系统中redis的安装配置步 ...

最新文章

  1. 读书笔记——Python第一个程序Hello world
  2. 回到顶部和返回首页jquery插件
  3. eclipse——jsp字体设置
  4. STM32 端口复用与重映射及低功耗引脚配置
  5. nameof() 到底是编译时还是运行时行为?
  6. vector的逆序输出(神奇的vector)
  7. HDU3430-扩展中国剩余定理
  8. 百万奖池大赛 | 交通事件、医学病理、违法广告检测等,2020首届江苏大数据开发与应用大赛启动...
  9. java中swing循环_在Java游戏循环中使用“ SwingUtilities.invokeLa...
  10. nginx 与php版本,nginx-php不同版本问题
  11. JS 立即执行的函数表达式(function)写法
  12. Setup Factory 打包工具部分功能代码解
  13. phpQuery—基于jQuery的PHP实现
  14. Markdown中在线编辑公式LaTex
  15. 电商“论贱”血拼 传统书店该何去何从
  16. 题朋友云南骑马照【明书、圣契】
  17. Python的大数据之旅(1)---Anaconda与WingIDE安装
  18. CNN卷积核计算原理
  19. LCD1602液晶 - 开发技术详解
  20. UVC(USB Video Class)协议讲解

热门文章

  1. RedHat静态Ip地址配置
  2. ZOJ-1654 Place the Robots 拆行拆列构图+二分匹配 Or 最大独立点集+TLE
  3. WM_USER和WM_APP[转]
  4. jdk1.8新特性(四)——Optional
  5. 大话设计模式—观察者模式
  6. 用API函数播放wav文件声音不连续的解决方法
  7. Windows中安装Emacs
  8. 从杂技表演到日剧BGM(r12笔记第23天)
  9. storm 简介及单机版安装指南
  10. MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践