Dawn's Blogs

分享技术 记录成长

0%

Spring Boot学习 (3) Redis MongoDB ES

Redis

通过引入 spring-boot-start-data-redis,就可以在 Spring Boot 中集成 Redis;同时也可以引入 spring-boot-starter-data-redis-reactive,支持与 Redis 的响应式异步交互。

使用

通过引入 starter,就可以注入一个自动配置的 RedisConnectionFactory、StringRedisTemplate、RedisTemplate。通过 StringRedisTemplate 就可以与 Redis 进行交互。

客户端

Spring Boot 支持两种 Redis 客户端,分别是 lettuce 和 jedis,lettuce 是默认的 Redis 客户端。

区别

lettuce 与 jedis 区别:

  • jedis 连接 Redis 服务器是直连模式,当多线程模式下使用 jedis 会存在线程安全问题,解决方案可以通过配置连接池使每个连接专用,但是会产生性能问题。
  • lettcus 基于 Netty 框架进行与 Redis 服务器连接,底层设计中采用 StatefulRedisConnection。StatefulRedisConnection 自身是线程安全的,可以保障并发访问安全问题,一个连接可以被多线程复用

MongoDB

通过引入 spring-boot-start-data-mongodb,就可以在 Spring Boot 中集成 MongoDB;同时也可以引入 spring-boot-starter-data-mongodb-reactive,支持与 MongoDB 的响应式异步交互。

可以注入 MongoTemplate 类来操作 MongoDB。

ElasticSearch

通过引入 spring-boot-start-data-elasticsearch,就可以在 Spring Boot 中集成 ES;同时也可以引入 spring-boot-starter-data-elasticsearch-reactive,支持与 ES 的响应式异步交互。

Spring Boot支持多个客户端。

  • 官方低级别的 REST 客户端(low-level REST client)
  • 官方的 Java API 客户端
  • Spring Data Elasticsearch 提供的 ReactiveElasticsearchClient

通过 ElasticsearchTemplate 来操作 ES。