整合redis,为什么要整合redis
由于热点文章的并发量比较大,每次访问热点文章的时候,都要从mysql数据库查询,mysql不能支持那么高的并发量,因此,用redis优化
-
导入redis依赖
-
编写redis.xml配置文件,声明RedisTemplate 模板用来CRUD的
-
让spring-beans.xml加载redis.xml配置文件
-
找到查询热点文章的方法,
4.1 先从reids中查询热点文章数据
4.2 判断redis中有的数据是否为空
4.3 如果为空,就去mysql中查询,然后把查询的结果放入redis
4.4 如果不为空,直接返回
第一次查询
4.1,4.2,4.3
第二次查询的时候:
4.1,4.2,4.4
第三次查询:
4.1,4.2,4.4
-
如果我们对热点文章做了修改,或者删除怎么办?
可以把redis中的数据删除.这样就相当于
第一次查询
4.1,4.2,4.3
整合kafka
用于数据传递的时候,整合思路?
- 首先爬虫爬取文章数据
- 爬取的文章数据保存到本地
- 读取本地的文章,封装到Article对象里
- 把这个对象转成json,
- 发送kafka
- 再cms系统中,编写kafka监听器
- 接收发来的消息,把json串,转成对象,保存到mysql
用于通知的时候,整合思路?
- 为了保证redis中的数据和mysql中的数据一致,因此我们在增,删,改文章的时候,不仅要操作mysql,还要操作redis,还要操作es索引库
- 发布文章的时候(增加) 添加mysql,且发送kafka通知redis,es进行增加
- 修改的时候,修改mysql,且发送kafka通知redis&es修改
- 删除同上