网站首页 > 精选文章 正文
与关系型数据库一样,Spring Boot也提供了对NoSQL数据库的集成扩展,如对Redis和MongoDB等数据库的操作。通过默认配置即可使用RedisTemplate和MongoTemplate等模板类操作非关系型数据库。
访问Redis
Redis可以作为缓存、消息中间件或多类型的key-value数据库。
作为非关系型数据库,Redis支持多种类型的存储方式,包括String(字符串)、List(列表)、Hash(哈希)、Set(集合)和Sorted Set(有序集合)等。
Spring Boot为Redis提供了基本的自动配置,依赖于springboot-starter-data-redis包。该包提供了自动配置的RedisConnectionFactory、StringRedisTemplate和Redis-Template实例。如果不配置,则默认连接localhost:6379服务器。
StringRedisTemplate继承自RedisTemplate,默认采用String的序列化策略。如果使用RedisTemplate,则可以实现自己的序列化方式。
连接Redis可以使用Lettuce或Jedis客户端。Spring Boot默认使用Lettuce客户端。因为Lettuce的连接是基于Netty的,所以多线程是安全的。
RedisTemplate提供了以下5种数据结构的操作方法:
opsForValue:操作字符串类型;
opsForHash:操作哈希类型;
opsForList:操作列表类型;
opsForSet:操作集合类型;
opsForZSet:操作有序集合类型。
下面给出一个集成了Redis操作的简单示例。
(1)在application.yml配置文件中添加配置,代码如下:
spring:
redis:
host: localhost
port: 6379
password: redistest
timeout: 1000
lettuce:
pool:
max-active: 10 //①
max-wait: 1000 //②
max-idle: 2 //③
min-idle: 0 //④
注释①:连接池的最大连接数。
注释②:连接池的最大阻塞等待时间。
注释③:连接池中的最大空闲连接数。
注释④:连接池中的最小空闲连接数。
(2)在Controller类中注入StringRedisTemplate实例,代码如下:
@RestController
@RequestMapping("/hi")
public class HiController {
//自动注入StringRedisTemplate
@Autowired
private StringRedisTemplate stringRedisTemplate;
@GetMapping("/redis/add")
public String redisAdd(int id) {
//Redis set操作
stringRedisTemplate.opsForValue().set("redis_test_"+id,
"redis
test!");
return "1";
}
@GetMapping("/redis/query")
public String redisQuery(int id) {
//Redis get操作
String val =
stringRedisTemplate.opsForValue().get("redis_
test_"+id);
return val;
}
@GetMapping("/redis/delete")
public String redisDelete(int id) {
//Redis delete操作
stringRedisTemplate.delete("redis_test_"+id);
return "1";
}
}
访问接口
http://localhost:8080/hi/redis/add?id=1,可以在Redis中添加一个String类型的数据;访问接口
http://localhost:8080/hi/redis/query?id=1,可以查询一个String类型的数据;访问接口
http://localhost:8080/hi/redis/delete?id=1,可以删除Redis数据。
访问MongoDB
MongoDB是一个开源的NoSQL文档型数据库,使用类JSON结构代替传统的基于表结构的关系型数据库。spring-boot-starter-datamongodb模块提供了可以操作MongoDB的MongoTemplate模板类。
Spring Boot自动配置
org.springframework.data.mongodb.MongoDatabaseFactory类,默认连接mongodb://localhost/test库。同样,也可以自定义一个MongoClient来代替MongoDatabaseFactory类。
下面给出一个集成MongoDB操作的简单示例。
(1)在application.yml配置文件中添加MongoDB配置,具体代码如下:
spring:
data:
mongodb:
host: localhost
port: 27017
database: user
username: root
password: test1111
authentication-database: admin
(2)注入MongoTemplate实例,代码如下:
@RestController
@RequestMapping("/hi")
public class HiController {
@Autowired
private MongoTemplate mongoTemplate; //自动注入
MongoTemplate
@GetMapping("/mongo/add")
public Document mongoAdd(String id) {
BasicDBObject db = new BasicDBObject();
db.put("_id", new ObjectId(id));
//插入操作
mongoTemplate.insert(db, "pages");
MongoCollection<Document> collection = mongoTemplate.
getCollection("user");
Document document = collection.find(db).first();
return document;
}
@GetMapping("/mongo/query")
public Document mongoQuery(String id) {
BasicDBObject db = new BasicDBObject();
db.put("_id", new ObjectId(id));
MongoCollection<Document> collection = mongoTemplate.
getCollection("user");
//查询操作
Document document = collection.find(db).first();
return document;
}
}
访问接口
http://localhost:8080/hi/mongo/query?id=5a717aa60837d974f4b4a5,即可查询相关的数据。
- 上一篇: 6K字详解:快速上手Spring Cache 整合 Redis 做缓存使用
- 下一篇:已经是最后一篇了
猜你喜欢
- 2025-05-23 6K字详解:快速上手Spring Cache 整合 Redis 做缓存使用
- 2025-05-23 SpringBoot整合Redis步骤,手把手教你一步步实现
- 2025-05-23 聊聊分布式锁——Redis和Redisson的方式
- 2025-05-23 Redis进阶实战:这才是Redisson的正确打开方式
- 2025-05-23 深入Spring Boot (十一):整合Redis详解
- 2025-05-23 在Java中使用Redis的方法
- 2025-05-23 Spring Boot3 开发中,Redis 数据缓存整合全攻略
- 2025-05-23 redis的简单与集群搭建
- 2025-05-23 Redis深度解析:场景、锁、队列、Big Key与缓存优化
- 2025-05-23 只需5分钟,完成Redis所有命令操作~
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)