之前的阶段练习了Linux系统上JT项目的发布,这里还需要在改回来.
课程准备
1)关掉数据库 :systemctl stop maiadb
2)关闭Linux中的Tomcat服务器
jps之后杀进程kill -9 xxx
3)关闭代理服务器 在sbin目录里面关掉
好了都关掉之后修改switchhosts将地址还原
然后在yml中修改数据库端口号和地址为
6)修改图片上传路径
nginx配置文件也要修改修改为一个服务器还有图片的路径修改下ok
2redis缓存
为什么需要缓存呢,就是因为当客户访问特别多的时候数据库代理也有可能宕机,所以在此之前加入缓存服务器,当客户访问时已经缓存的可以直接返回客户,怎么实现高可用呢就是多加缓存服务器实现富集
这里有几个只是点1缓存使用的是k-v结构必须唯一是一维的
2缓存是用C语言在内存中运行,内存中的数据一断电就擦除,所以Redis具有内存数据持久化将数据保存到磁盘中
HA是高可用的意思
3Redis支持的数据类型有5种分别是 字符串(strings), 散列(hashs),列表(list),集合(sets),有序集合(sorted sets)
4redis 可以被当做数据库 ,缓存和消息中间件
把Redis安装包安装到Linux里面还是src目录
1拖拽>解压>删除压缩包>改名
tar -xvf xxxxx>rm -f xxxxx>MV xxx xxx
然后安装
1进入Redis根目录执行make
2 make install
老师在此穿插了一个问题,就是当修改文件时没正确退出,会出现一个.a.txt.swp文件可以点击D删除或者强制删除文件.rm -rf .xxx.swp
然后编辑Redis.conf
命令 :vim Redis.conf
总共修改三处
1处是修改ip的绑定为本机127.0.0.0.1
2修改保护模式改为no
3开启后台启动
然后咱们就开启Redis
命令启动 Redis-server Redis.conf
进入客户端 Redis-cli -p 6379
关闭 Redis-cli -p 6379 shutdown
如果Redis是默认端口则可以写
为redis-cli
redis-cli shutdown
这里的Redis常用命令有
String 类型的语句如图
hash类型(散列)
list类型
先进先出是队列,先进后出是栈
最后呢就是spring 和Redis的整合
1首先是manage下pom里面导入jar包
一个是jedis,一个是spring-data-Redis
然后可以做一下测试看springboot和Redis连接上了没
这里因为经常得创建对象jedis所以可以整合一下整合思路有3条因为缓存经常用所以放到公共包里
然后在公共项目里创建一个
配置文件整合Redis
配置类内容如下
`@Configuration// 我是一个配置类,一般都会和@bean联用
@propertySource(“classpath:/properties/redis.properties”)
public class RedisConfig{
@Value("${redis.host}")
private String host;
@Value("${redis.port}")
private Integer port;
////将返回值的结果交给spring容器进行管理,如果以后想要使用该对象则可以直接注入
@Bean
public Jedis jedis()
{
return new Jedis(host ,port);}
}`
配置好之后讲了个如何实现商品分类的缓存问题
package com.jt.util;
import org.springframework.util.StringUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class ObjectMapperUtil {
//json与对象的转化 优化异常处理
private static final ObjectMapper MAPPER = new ObjectMapper();
//1.将对象转化为JSON
public static String toJSON(Object target) {
if(target == null) {
throw new NullPointerException("taget数据为null");
}
try {
return MAPPER.writeValueAsString(target);
} catch (JsonProcessingException e) {
e.printStackTrace();
throw new RuntimeException(e); //如果转化过程中有问题则直接抛出异常
}
}
//2. 将json串转化为对象 用户传递什么样的类型,就返回什么样的对象!!!
// <T> 定义了一个泛型对象 代表任意类型
public static <T> T toObject(String json,Class<T> targetClass) {
if(StringUtils.isEmpty(json) || targetClass == null) {
throw new NullPointerException("参数不能为null");
}
try {
return MAPPER.readValue(json, targetClass);
} catch (JsonProcessingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
将对象转换为json再将json转换成对象对了API是啥来着我查一下(查了下ApI就是接口)