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。