1. springboot整合redis
讲解redis之前呢,我想先谈谈NoSQL。这个NoSQL是什么意思呢?从字面来看,No表示否定,NoSQL就是非关系型数据库解决方案,意思就是数据该存存该取取,只是这些数据不放在关系型数据库中了,那放在哪里?自然是一些能够存储数据的其他相关技术中了,比如Redis等。
1.1 什么是redis
Redis是一款采用key-value数据存储格式的内存级NoSQL数据库,重点关注数据存储格式,是key-value格式,也就是键值对的存储形式。与MySQL数据库不同,MySQL数据库有表、有字段、有记录,Redis没有这些东西,就是一个名称对应一个值,并且数据以存储在内存中使用为主。什么叫以存储在内存中为主?其实Redis有它的数据持久化方案,分别是RDB和AOF,但是Redis自身并不是为了数据持久化而生的,主要是在内存中保存数据,加速数据访问的,所以说是一款内存级数据库。
1.2 安装并启动redis
安装的过程我就不讲了,我们直接进入redis的安装目录,启动redis
进入控制台,输入
redis-server.exe redis.windows.conf
出现以上标志,说明我们的redis已经启动成功。
1.3 整合redis
整合
在进行整合之前先梳理一下整合的思想,springboot整合任何技术其实就是在springboot中使用对应技术的API。如果两个技术没有交集,就不存在整合的概念了。所谓整合其实就是使用springboot技术去管理其他技术,几个问题是躲不掉的。
第一,需要先导入对应技术的坐标,而整合之后,这些坐标都有了一些变化
第二,任何技术通常都会有一些相关的设置信息,整合之后,这些信息如何写,写在哪是一个问题
第三,没有整合之前操作如果是模式A的话,整合之后如果没有给开发者带来一些便捷操作,那整合将毫无意义,所以整合后操作肯定要简化一些,那对应的操作方式自然也有所不同
1.3.1 导入springboot整合redis的starter坐标
springboot整合redis所需要的坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
1.3.2 进行基础配置
这里我们配置一下端口号,其实也可以省略,因为不进行配置默认端口号就是6379
spring:
redis:
host: localhost
port: 6379
1.3.3 使用springboot整合redis的专用客户端接口操作,此处使用的是RedisTemplate
@SpringBootTest
class RedisApplicationTests {
@Autowired
private RedisTemplate redisTemplate;
@Test
void setHash(){
HashOperations ops = redisTemplate.opsForHash();
ops.put("hx","1","love");
}
@Test
void getHash(){
HashOperations ops = redisTemplate.opsForHash();
Object hx = ops.get("hx", "1");
System.out.println(hx);
}
}
先执行set再执行get操作,我们就可以获取键对应的值。
总结
- springboot整合redis步骤
- 导入springboot整合redis的starter坐标
- 进行基础配置
- 使用springboot整合redis的专用客户端接口RedisTemplate操作
2. springboot整合mongodb
使用Redis技术可以有效的提高数据访问速度,但是由于Redis的数据格式单一性,无法操作结构化数据,当操作对象型的数据时,Redis就显得捉襟见肘。在保障访问速度的情况下,如果想操作结构化数据,看来Redis无法满足要求了,此时需要使用全新的数据存储结束来解决此问题
2.1 什么是mongodb
MongoDB是一个开源、高性能、无模式的文档型数据库,它是NoSQL数据库产品中的一种,是最像关系型数据库的非关系型数据库。
上述描述中几个词,其中对于我们最陌生的词是无模式的。什么叫无模式呢?简单说就是作为一款数据库,没有固定的数据存储结构,第一条数据可能有A、B、C一共3个字段,第二条数据可能有D、E、F也是3个字段,第三条数据可能是A、C、E 3个字段,也就是说数据的结构不固定,这就是无模式。有人会说这有什么用啊?灵活,随时变更,不受约束。以下列出了一些可以使用MongoDB作为数据存储的场景,但是并不是必须使用MongoDB的场景:
- 淘宝用户数据
- 存储位置:数据库
- 特征:永久性存储,修改频度极低
- 游戏装备数据、游戏道具数据
- 存储位置:数据库、Mongodb
- 特征:永久性存储与临时存储相结合、修改频度较高
- 直播数据、打赏数据、粉丝数据
- 存储位置:数据库、Mongodb
- 特征:永久性存储与临时存储相结合,修改频度极高
2.2 安装并启动mongodb
windows版安装包下载地址:
https://www.mongodb.com/try/download
打开我们mongodb的安装目录,在上面的文件夹路径输入cmd回车
输入以下指令,启动服务器
mongod --dbpath=…\data\db
注意,启动之前需要在我们mongod安装文件夹新建data文件夹,并在data文件夹中创建db文件夹存放数据。
启动客户端:另启动命令提示符窗口,输入以下指令
mongo --host=127.0.0.1 --port=27017
在命令行窗口操作mongodb太繁琐了,因此我们使用一款新的软件进行 操作------robot3t
这款软件操作跟我们navicat差不多,感兴趣可以去搜索使用一下。
2.3 整合mongodb
整合
使用springboot整合MongDB该如何进行呢?其实springboot为什么使用的开发者这么多,就是因为他的套路几乎完全一样。导入坐标,做配置,使用API接口操作。整合Redis如此,整合MongoDB同样如此。
第一,先导入对应技术的整合starter坐标
第二,配置必要信息
第三,使用提供的API操作即可
2.3.1 导入springboot整合MongoDB的starter坐标
</dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.3.2 进行基础配置
spring:
data:
mongodb:
uri: mongodb://localhost/hx
2.3.3 使用springboot整合MongoDB的专用客户端接口MongoTemplate来进行操作
@SpringBootTest
public class mongodbTest {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void testMongoTemplate() {
Book book = new Book();
book.setId(3);
book.setName("hx");
book.setDesc("love you");
mongoTemplate.insert(book);
}
}
整合工作到这里就做完了,感觉既熟悉也陌生。熟悉的是这个套路,三板斧,就这三招,导坐标做配置用API操作,陌生的是这个技术,里面具体的操作API可能会不熟悉,有关springboot整合MongoDB我们就讲到这里。有兴趣可以继续学习MongoDB的操作,然后再来这里通过编程的形式操作MongoDB。
总结
- springboot整合MongoDB步骤
- 导入springboot整合MongoDB的starter坐标
- 进行基础配置
- 使用springboot整合MongoDB的专用客户端接口MongoTemplate操作