项目学习第二天业务代码编写-查询与缓存
在这里不会把所有学习步骤繁琐得介绍一遍,而是会挑选一些重点的学习内容加以记录。
首先 完成基础微服务-条件查询,招聘微服务开发,问答微服务开发,文章微服务开发,在开发之前需要完成对每一个服务的表结构分析以后再进行开发。这里拿文章微服务的两个子模块进行举例说明。
进行表结构分析
文章表 | tb_article | |
---|---|---|
字段名称 | 字段含义 | 字段类型 |
id | ID | 文本 |
userid | 用户ID | 文本 |
title | 文章标题 | 文本 |
content | 文章内容 | 文本 |
createtime | 发表日期 | 日期 |
istop | 是否置顶 | 文本 |
thumbup | 点赞数 | 整型 |
1.用代码生成器生成招聘微服务代码 tensquare_article
2.拷贝到当前工程,并在父工程引入
3.修改Application类名称为ArticleApplication
4.修改application.yml 中的端口为,url 为
jdbc:mysql://192.168.184.134:3306/tensquare_article?characterEncoding=UTF8
这里的地址位docker服务的地址,可以在docker中利用ifconfig命令来查看。
为了提高查询的性能,我们通常采用Redis缓存解决。
Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问 redis服务,对reids底层开发包(Jedis, JRedis, and RJC)进行了高度封装,RedisTemplate 提供了redis各种操作
搭建Redis 服务
docker run ‐di ‐‐name=tensquare_redis ‐p 6379:6379 redis
pom.xml引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐data‐redis</artifactId>
</dependency>
修改application.yml ,在spring节点下添加配置
redis:
host: 192.168.184.134
修改ArticleService 引入RedisTemplate
@Autowired
private RedisTemplate redisTemplate;
// 根据ID查询实体
// @param id
// @return
public Article findById(String id) { //从缓存中提取
Article article=(Article)redisTemplate.opsForValue().get("article_"+id);
// 如果缓存没有则到数据库查询并放入缓存
if(article==null) {
article = articleDao.findById(id).get();
redisTemplate.opsForValue().set("article_" + id, article);
}
return article;
}
在项目中哪部分业务用到缓存
在这个项目中的文章查询部分用到了redis缓存技术,本人在其他项目中,涉及到其他项目中的文档显示,算法展示,模型展示,用到了redis缓存技术,小伙伴们可以自己根据业务去讲解哪部分业务使用到了缓存技术。
你说一下项目中是如何使用缓存的
项目中,对于过热的数据,高频的数据,采用redis技术,减少数据库压力,对于一些高频的访问内容,自动存取到缓存中,可以利用set,hset等方法完成数据的缓存,对于缓存技术redis日后打算专门写一篇文章来共同学习redis底层的知识点。
说一下如何设置缓存过期时间
redisTemplate.opsForValue().set("article_" + id, article,1, TimeUnit.DAYS);