项目使用redis和nginx总结以及记录一下知识点
一、后台接口:
<1>在配置文件里redis的配置信息
pom文件里导入redis的jar包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</exclusion>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加jedis客户端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
application.properties配置
spring.redis.database=1
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
spring.redis.timeout=5000
spring.redis.jedis.pool.max-active=8
spring.redis.jedis.pool.max-wait=-1
spring.redis.jedis.pool.max-idle=5
spring.redis.jedis.pool.min-idle=0
<2>在项目里添加redis的配置类、初始化redis以及redis的工具类RedisUtil
<3>将数据的集合set到redis里边 redisUtils.set(key,value);例如:RedisUtils.set("key",想要放进redis的集合)
<4>初始化redis的时候把要加入redis的数据都set进去
eg:
public void initRedis() {
//初始化开始结束时间
VoteActivity voteActivity = voteActivityService.$().getOne(1l);
if (!ToolStr.isEmpty(voteActivity)) {
redisUtil.set("createdTime", voteActivity.getCreatedTime().getTime() + "");
redisUtil.set("endTime", voteActivity.getEndTime().getTime() + "");
}
//初始化被投票单位
//初始化票数
List<Vote> list = voteDao.findAll();
JSONObject jsonObject = new JSONObject();
;
for (Vote vote : list) {
redisUtil.zAdd("dbvoted", vote.getId().toString(), vote.getSum());
jsonObject.put(vote.getId() + "", vote);
}
redisUtil.set("dbbevoted", jsonObject.toJSONString());
}
<5>reids的数据库里的数据可以操作。增删改查,
码云上搜索RedisUtils选择java第一个就可以用,里边有对redis五种数据类型增删改查的操作
<6>在投票这个项目中用的比较多的数据类型是String、zSet.
<7>获取redis里的数据是用 redisUtils.get(要获取的数据)
<8>idea打包项目时跳过test点install
二、后台管理端:
<1>上传banner图的时候回显问题:
用idea自带的tomcat没法直接回显图片的路径,只能在部署服务器的时候放在tomcat下边的时候根据上传图片的接口创建相应的路径。
eg:投票的banner图获取的路径是:http:localhost:8080/file/banner.png
在服务器上的tomcat下的webapps下边创建一个file的文件夹,以后图片上传就上传到这个文件夹里边。
在后台管理的页面上图片的路径就是http:服务器的路径:8080/file/图片名称在外网访问
<2>vue页面在运行的时候进一个页面首先调用的钩子函数是create。
<3>vue+element+ui 中的日期时间组件用el-data-picker。
上传图片用的是el-upload
根据https://element.faas.ele.me/#/zh-CN找到需要的组件,添加需要的属性
eg:
<el-date-picker
v-model="obj.endTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss" //这个属性就是设置传入后台的时间格式是:2019-10-16 13:24:00 若是不设置这个属性传入后台的数据格式类 //似2019-10-15T13:45:30这种格式的。
placeholder="选择结束日期时间">
</el-date-picker>
<4>打包vue项目的时候找到package.json找到"build:prod": "vue-cli-service build",点击左侧绿色的小三角运行打包,在dist文件里的文件就是打包好的
三、部署项目:
<1>配置java开发环境
第一步:我们要下载java开发工具包JDK 下载,
第二步:下载完成之后根据提示进行安装
第三步:安装完成之后,我们需要配置一下环境变量,右击”我的电脑”,点击”属性”,选择”高级系统设置”;
- 选择”高级”选项卡,点击”环境变量”
- 在”系统变量”中设置三项属性,如果属性已经存在则选择编辑,不存在则选择新建
- 第一个属性是JAVA_HOME(不区分大小写),参数是:D:\java\jdk_1.8.0 // 这里填写的是你自己的实际安装路径
- 第二项属性是CLASSPATH(同样不区分大小写),参数是:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- 第三项属性是Path,参数,参数是:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- 测试运行:开始” -> “运行”,键入”cmd”,回车,在命令框输入命令java –version。若是出现java version的信息说明配置
<2>Mysql安装
<3>Navicat安装
<4>Redis安装
<5>Tomcat
第一步:把打包好的项目解压放在webapp的文件夹下边,
第二部:打开bin目录,找到startup
Tomcat启动成功
存放图片的目录也在项目的同目录下创建field的文件
<6>Nginx配置config文件
nginx服务器的配置信息主要集中在nginx.conf这个配置文件中,主要是由6部分组成:
- main:用于进行nginx全局信息的配置
- events:用于nginx工作模式的配置
- http:用于进行http协议信息的一些配置
- server:用于进行服务器访问信息的配置
- location:用于进行访问路由的配置
- upstream:用于进行负载均衡的配置
- 其中,http模块是nginx最核心的一个模块,配置项也是比较多的,项目中会设置到很多的实际业务场景,需要根据硬件信息进行适当的配置,常规情况下,使用默认配置即可!server:一个虚拟主机的配置,一个http中可以配置多个server
- server_name:用于指定ip地址或者域名,多个配置之间用空格分隔
- root:表示整个server虚拟主机内的根目录,所有当前主机中web项目的根目录
- index:用户访问web网站时的全局首页
- charset:用于设置www/路径中配置的网页的默认编码格式
- access_log:用于指定该虚拟主机服务器中的访问记录日志存放路径
- error_log:用于指定该虚拟主机服务器中访问错误日志的存放路径
location模块是nginx配置主要用于配置路由访问信息
location /:表示匹配访问根目录
root:用于指定访问根目录时,访问虚拟主机的web目录
index:在不指定访问具体资源时,默认展示的资源文件列表
反向代理配置方式
通过反向代理代理服务器访问模式,通过proxy_set配置让客户端访问透明化
如果是多台服务器的话,则在此配置,并修改 location 节点下面的 proxy_pass
upstream flask {
server 127.0.0.1:5000;//服务器的ip+端口号
server 127.0.0.1:5001;
}
server {
# 监听80端口
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# 请求转发到gunicorn服务器
proxy_pass http://127.0.0.1:5000;
# 请求转发到多个gunicorn服务器
# proxy_pass http://flask;
# 设置请求头,并将头信息传递给服务器端
proxy_set_header Host $host;
# 设置请求头,传递原始请求ip给 gunicorn 服务器
proxy_set_header X-Real-IP $remote_addr;
}
}
<7>Nginx命令
启动nginx (1)双击nginx.exe
nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx
nginx -t #测试配置是否有语法错误
nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
-?,-h : 打开帮助信息
-v : 显示版本信息并退出
-V : 显示版本和配置选项信息,然后退出
-t : 检测配置文件是否有语法错误,然后退出
-q : 在检测配置文件期间屏蔽非错误信息
-s signal : 给一个 nginx 主进程发送信号:stop(停止), quit(退出), reopen(重启), reload(重新加载配置文件)
-p prefix : 设置前缀路径(默认是:/usr/local/Cellar/nginx/1.2.6/)
-c filename : 设置配置文件(默认是:/usr/local/etc/nginx/nginx.conf)
-g directives : 设置配置文件外的全局指令