springboot整合redis,MongoDB,Elasticsearch(ES)

这篇具有很好参考价值的文章主要介绍了springboot整合redis,MongoDB,Elasticsearch(ES)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

 springboot整合redis

连接Redis

字符串操作

哈希表操作

列表操作

集合操作

有序集合操作

lettcus与jedis的区别 

springboot整合MongoDB

新增数据

查询数据

更新数据

删除数据

 springboot整合Elasticsearch(ES)

创建ElasticsearchRepository

创建实体类

增删改查

搜索


 springboot整合redis

Spring Boot整合Redis,需要使用Redis的Java客户端库,通常使用Jedis或Lettuce。在使用Jedis或Lettuce时,需要在pom.xml文件中添加对应的依赖。

springboot整合redis,MongoDB,Elasticsearch(ES)

 springboot整合redis,MongoDB,Elasticsearch(ES)

 

连接Redis

使用Jedis连接Redis:
Jedis jedis = new Jedis("localhost", 6379);

使用Lettuce连接Redis:
RedisClient redisClient = RedisClient.create("redis://localhost:6379"); StatefulRedisConnection<String, String> connection = redisClient.connect(); RedisCommands<String, String> syncCommands = connection.sync();

字符串操作

设置key-value:
jedis.set("key", "value");

获取value:
String value = jedis.get("key");

设置过期时间:
jedis.setex("key", 60, "value");

哈希表操作

设置哈希表:
Map<String, String> map = new HashMap<>(); map.put("field1", "value1"); map.put("field2", "value2"); jedis.hmset("hash", map);

获取指定哈希表中的field值:
String value = jedis.hget("hash", "field1");

获取哈希表中所有的field值:
Map<String, String> map = jedis.hgetAll("hash");

列表操作

在列表的左侧或右侧添加元素:
jedis.lpush("list", "value1", "value2"); jedis.rpush("list", "value3", "value4");

获取列表中的元素:
List<String> list = jedis.lrange("list", 0, -1);

集合操作

添加元素到集合:
jedis.sadd("set", "value1", "value2", "value3");

获取集合中的所有元素:
Set<String> set = jedis.smembers("set");

有序集合操作

添加元素到有序集合:
jedis.zadd("zset", 1, "value1"); jedis.zadd("zset", 2, "value2");

获取有序集合中指定分数范围内的元素:
Set<String> set = jedis.zrangeByScore("zset", 1, 2);

lettcus与jedis的区别 

springboot整合redis,MongoDB,Elasticsearch(ES)

 


springboot整合MongoDB

Spring Boot 是一个非常流行的 Java 开发框架,而 MongoDB 是一种流行的 NoSQL 数据库。在 Spring Boot 中整合 MongoDB,可以使用 Spring Data MongoDB 来方便地进行开发。

springboot整合redis,MongoDB,Elasticsearch(ES) 

springboot整合redis,MongoDB,Elasticsearch(ES) 

 springboot整合redis,MongoDB,Elasticsearch(ES)

 springboot整合redis,MongoDB,Elasticsearch(ES)

 

新增数据

使用 MongoTemplate 的 insert 方法插入一条数据,或使用 save 方法插入或更新一条数据。

@Autowired
private MongoTemplate mongoTemplate;

public void addData(User user) {
    mongoTemplate.insert(user);
}

public void saveData(User user) {
    mongoTemplate.save(user);
}

查询数据

使用 MongoTemplate 的 find 方法查询数据,或使用 Query 和 Criteria 对象进行查询条件的设置。

public List<User> findAll() {
    return mongoTemplate.findAll(User.class);
}

public User findById(String id) {
    Query query = new Query(Criteria.where("id").is(id));
    return mongoTemplate.findOne(query, User.class);
}

更新数据

使用 MongoTemplate 的 updateFirst 和 updateMulti 方法更新数据。

public void updateData(User user) {

   Query query = new Query(Criteria.where("id").is(user.getId()));

    Update update = new Update().set("name", user.getName()).set("age", user.getAge());

   mongoTemplate.updateFirst(query, update, User.class);

}

删除数据

使用 MongoTemplate 的 remove 方法删除数据。


public void deleteById(String id) {

  Query query = new Query(Criteria.where("id").is(id));

  mongoTemplate.remove(query, User.class);

}

 springboot整合Elasticsearch(ES)

Elasticsearch是一个分布式全文搜索引擎

 springboot整合redis,MongoDB,Elasticsearch(ES)

springboot整合redis,MongoDB,Elasticsearch(ES) 

 

创建ElasticsearchRepository

在SpringBoot中,可以通过ElasticsearchRepository来访问Elasticsearch,只需要继承该接口即可。

public interface UserRepository extends ElasticsearchRepository<User, Long> {
}

其中,User是实体类,Long是主键类型。

创建实体类

创建实体类,使用注解来映射Elasticsearch中的索引和字段。

@Document(indexName = "user", type = "_doc")
public class User {

    @Id
    private Long id;

    @Field(type = FieldType.Keyword)
    private String name;

    @Field(type = FieldType.Integer)
    private Integer age;

    // getter and setter
}

增删改查

通过ElasticsearchRepository提供的方法,可以实现增删改查的操作。如下:

@Autowired
UserRepository userRepository;

// 新增
userRepository.save(user);

// 删除
userRepository.deleteById(id);

// 修改
userRepository.save(user);

// 查询
Optional<User> optional = userRepository.findById(id);

搜索

Elasticsearch提供了丰富的搜索API,可以通过QueryBuilder来构建查询条件,通过SearchRequest来执行搜索操作。如下:

@Autowired
RestHighLevelClient restHighLevelClient;

// 构建查询条件
QueryBuilder queryBuilder = QueryBuilders.matchQuery("name", "张三");

// 构建SearchRequest
SearchRequest searchRequest = new SearchRequest("user");
searchRequest.types("_doc");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(queryBuilder);
searchRequest.source(searchSourceBuilder);

// 执行搜索
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);

// 处理搜索结果
SearchHits hits = searchResponse.getHits();
for (SearchHit hit : hits) {
    String sourceAsString = hit.getSourceAsString();
    User user = JSON.parseObject(sourceAsString, User.class);
    System.out.println(user);
}

 


我记得花香,便不负这时光文章来源地址https://www.toymoban.com/news/detail-450986.html

到了这里,关于springboot整合redis,MongoDB,Elasticsearch(ES)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch系列 - SpringBoot整合ES:分析器

    1. ElasticSearch match 文本搜索的过程? Elasticsearch 的 match 查询是一种基于文本匹配的查询方式,它的搜索过程如下: ① 将查询字符串分词:Elasticsearch 会将查询字符串分成一个个词项(term),并去除停用词(如“的”、“是”等常用词汇)和标点符号等无意义的字符。 ② 构建

    2024年02月06日
    浏览(51)
  • ElasticSearch序列 - SpringBoot整合ES:范围查询 range

    01. ElasticSearch range查询是什么? Elasticsearch 中的 range 查询可以用于查询某个字段在一定范围内的文档。 range 查询可同时提供包含和不包含这两种范围表达式,可供组合的选项如下: gt : 大于(greater than) lt : 小于(less than) gte : = 大于或等于(greater than or equal to) lte : = 小于

    2024年02月09日
    浏览(37)
  • 【Elasticsearch】SpringBoot整合ES实现搜索功能 | 高亮显示

    先看代码: controller: serviceImpl: 小结 : 1、添加ES场景启动器 2、yaml配置ES 3、准备需要用到的变量 注:还有一个注入的RestHighLevelClient 结构如下: 具体调用的方法以及设置页码等参看代码。 加断点查看对应searchResponse数据结构: HighlightFields的数据结构: 对照kinaba结果: 3、根

    2024年02月11日
    浏览(38)
  • Springboot 整合 Elasticsearch(五):使用RestHighLevelClient操作ES ②

    📁 前情提要: Springboot 整合 Elasticsearch(三):使用RestHighLevelClient操作ES ① 目录  一、Springboot 整合 Elasticsearch 1、RestHighLevelClient API介绍 1.1、全查询 分页 排序 1.2、单条件查询 1.2.1、termQuery 1.2.2、matchQuery 1.2.3、短语检索 1.3、组合查询 1.4、范围查询 1.5、模糊查询 1.6、分组

    2024年04月11日
    浏览(35)
  • ElasticSearch系列 - SpringBoot整合ES:多个精确值查询 terms

    ElasticSearch - SpringBoot整合ES:多个精确值查询 terms 01. ElasticSearch terms 查询支持的数据类型 在Elasticsearch中,terms查询支持多种数据类型,包括: 字符串类型:可以将多个字符串值作为数组传递给terms查询,以匹配包含任何一个指定字符串值的文档。 数值类型:可以将多个数值作

    2024年02月16日
    浏览(63)
  • ElasticSearch序列 - SpringBoot整合ES:根据指定的 ids 查询

    1. ElasticSearch 根据 ids 查询文档 ① 索引文档,构造数据 ② 查询文档 id 为 1 或者 2 的文档: 我们索引文档时,文档的id为整型,为什么查询出来的文档 id为字符串类型呢?如果我们使用字符串类型的文档id查询呢? 可以看到仍然可以查询到匹配的文档。 在Elasticsearch中,文档

    2024年02月11日
    浏览(49)
  • ElasticSearch系列 - SpringBoot整合ES:组合多个查询条件 bool 查询

    01. ElasticSearch 布尔查询是什么? 在实际应用中,我们很有可能会查询多个值或字段。 一个 bool 查询由三部分组成: must:所有的语句都必须(must) 匹配,与 AND 等价。 must_not:所有的语句都不能(must not)匹配,与 NOT 等价。 should:至少有一个语句要匹配,与 OR 等价。 02.

    2023年04月08日
    浏览(65)
  • ElasticSearch系列 - SpringBoot整合ES之全文搜索匹配查询 match

    官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/index.html 权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/structured-search.html 1. 数据准备 官方测试数据下载地址:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip ,数据量很大,我们自己构造数据吧。 2. m

    2023年04月08日
    浏览(45)
  • ElasticSearch系列 - SpringBoot整合ES:实现搜索结果排序 sort

    00. 数据准备 01. Elasticsearch 默认的排序方式是什么? ElasticSearch 默认的排序方式是相关性排序。相关性排序是根据查询条件与文档的匹配程度来计算每个文档的相关性得分,然后按照得分从高到低进行排序。相关性排序是 ElasticSearch 中最常用的排序方式,因为它可以根据查询

    2024年02月02日
    浏览(44)
  • ElasticSearch系列 - SpringBoot整合ES:短语匹配查询 match_phrase

    1. ElasticSearch match_phrase查询是什么?它与match查询有什么区别? match_phrase查询是一种用于匹配短语的查询方式,可以用于精确匹配多个单词组成的短语。它会将查询字符串分解成单词,然后按照顺序匹配文档中的单词,只有当文档中的单词顺序与查询字符串中的单词顺序完全

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包