windows安装Redis,Mongo,ES并快速基本掌握开发流程

前言

这里只是一些安装后的基础操作,后期会学习更加深入的操作

基础操作

Redis

Redis是一款基于Key-value存储结构的内存级NoSQL数据库

特点:

  1. 支持多种数据存储格式
  2. 支持持久化
  3. 支持集群

首先下载windows版本的Redis

下载地址:https://github.com/tporadowski/redis/releases

安装完成之后进行启动

Redis启动

服务端启动命令:

java 复制代码
redis-server.exe redis.windows.conf

客户端启动命令:

java 复制代码
redis-cli.exe	

输入完成后会出现问题,这时windows版本下的一个bug

这里先输入:

输入完成后再次输入上述操作:

启动成功,在其中设置key-value并查询key-value

还可以将多个key-value写入到一个key中

idea集成Redis

在idea集成了Redis之后,需要告知idea使用的Redis的地址才行,这就需要在配置文件中进行配置

yml 复制代码
spring:
  data:
    redis:
      host: localhost
      port: 6379

在操作是通过接口对象Redistemplate进行操作

操作之前需要通过ops*获取各种数据类型操作接口

java 复制代码
    @Autowired
    private RedisTemplate redisTemplate;
    @Test
    void set() {
        //因为Redis支持多种存储结构,所以需要先指定Redis的存储结构
        ValueOperations ops = redisTemplate.opsForValue();
        ops.set("age",2);
    }

    @Test
    void get(){
        ValueOperations ops = redisTemplate.opsForValue();
        ops.get("age");
    }
    @Test
    void hset(){
        HashOperations hashOperations = redisTemplate.opsForHash();
        hashOperations.put("nihao","a","aa");
    }
    @Test
    void hget(){
        HashOperations hashOperations = redisTemplate.opsForHash();
        Object o = hashOperations.get("nihao", "a");
    }

注意:操作Redis的客户端可以使用redisTemplate和StringRedisTemplate两个接口,但是redisTemplate是以对象的形式范围数据,而stringRedisTemplate是以字符串的形式返回数据

客户端:StringRedisTemplate以字符串作为key和value,与Redis客户端操作等效

jedis技术

一般系统默认使用的是lettuce技术,如果要使用jedis技术需要引入依赖:

java 复制代码
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>

需要在配置文件中对client的类型进行配置

yml 复制代码
client-type: jedis

lettcus与jedis区别:

  1. jdis连接Redis服务器是直连模式,当多线程模式下使用jedis会存在线程安全问题,解决方案可以通过配置连接池使每个连接专用,这样整体性能就大受影响
  2. lettcus基于Netty框架进行与Redis服务器连接,底层设计中采用StatefulRedisConnection,它自身是线程安全的,可以保障并发访问安全问题,所以一个连接可以被多线程复用,当然lettcus也支持多连接实例一起工作

Mongodb

Mongodb是一个开源,高性能,无模式的文档型数据库。NoSQL数据库产品中的一种,是最像关系型数据库的非关系型数据库

使用场景:

像比如说在直播数据的处理中,有部分数据变化的速度非常的快,这部分数据就不适合在数据库中进行操作,应该临时存储,所以用到永久性存储和临时存储相结合,修改频度极高

还有比如停车场的状态信息这些变化频度高的临时数据都可以在Mongodb中进行存储

windows版Mongodb的安装

下载地址:https://www.mongodb.com/try/download

windows版Mongo启动:

服务端启动:

java 复制代码
mongod --dbpath=..\data\db

客户端启动:

java 复制代码
mongo --host=127.0.0.1 --port=27017

启动的是服务端,进行数据库的初始化

启动客户端

当在下载过程中出现如下问题:

可以通过如下步骤进行解决:

  1. 下载对应的dll文件(通过互联网搜索即可)
  2. 拷贝到windows安装路径下的system32目录中
  3. 执行命令注册对应的dll文件
java 复制代码
regsvr32 vcruntime140_1.dll
  • Mongodb的基础操作
  • 基础查询
  • 条件查询

idea整合Mongodb

创建项目:

在配置文件中进行配置

yml 复制代码
spring:
   data:
     mongodb:
       uri: mongodb://localhost/库名

在测试类中进行测试:

java 复制代码
@Autowired
private MongoTemplate mongotemplate;
//使用对象进行对应的操作

ES(Elasticsearch)

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

将数据库中的数据进行分词,通过个别词进行查询,查询出对应的id,将与之匹配的部分信息保存到文档之中,加速查询的效率

ESwindows下载

下载地址:https://www.elastic.co/cn/downloads/elasticsearch

  • 启动

运行 elasticsearch.bat

ik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

将分词器的压缩包粘贴到plugins目录下进行解压并重新启动ES

  • ES基本操作

    创建索引并指定规则:

ES文档操作

  • 创建文档

  • 查询文档
  • 条件查询
  • 删除文档
  • 修改文档(全量修改)
  • 修改文档(部分修改)

idea整合ES

低级别ES整合

导入坐标依赖:

java 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        </dependency>

再通过配置文件进行配置:

yml 复制代码
spring:
   elasticsearch:
      rest:
        uris: http://localhost:9200

进行相应的操作:

java 复制代码
@Autowired
private ElasticsearRestTemplate template;

高级别ES整合

随着ES版本的不断更新迭代,推出高级别操作

导入依赖:

java 复制代码
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
        </dependency>

需要手动创建客户端

java 复制代码
private RestHighLevelClient client;
@Test
void test()throws IOExption{
HttpHost host=HttpHost.create("http://localhost:9200");
RestClientBuilder builder=RestClient.builder(host);
client=new RestHighLevelClient(builder);
//客户端操作
CreateIndexRequest request=new CreateIndexRequest("books");
//获取操作索引的客户端对象,调用创建索引操作
client.indices().create(request,RequestOptions.DEFAULT);
client.close();
}
相关推荐
YOU OU3 小时前
Redis基础常识与命令
数据库·redis·缓存
吳所畏惧8 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
赵丙双9 小时前
Redis 概率相关的数据类型
redis
阿里云大数据AI技术9 小时前
阿里云 ES AI 引擎版:面向 Agent 场景,为亿级租户、千亿规模向量设计的搜索引擎
人工智能·elasticsearch·agent
阿里云大数据AI技术9 小时前
FalconSeek 技术解析:阿里云 Elasticsearch 云原生内核如何让查询性能飙升600%
人工智能·elasticsearch
Elastic 中国社区官方博客10 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
糖果店的幽灵11 小时前
langgraph的 MessagesState 解读
java·开发语言·人工智能·windows·langgraph
Elasticsearch12 小时前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
elasticsearch
骑上单车去旅行12 小时前
MD5校验对比脚本
linux·服务器·windows
Elastic 中国社区官方博客13 小时前
如何使用 OpenTelemetry 对你的搜索 API 进行埋点,并使用 ES|QL 对其进行查询
大数据·功能测试·elasticsearch·搜索引擎·全文检索·可用性测试