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

前言

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

Redis

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

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

首先下载windows版本的Redis
下载地址:https://github.com/tporadowski/redis/releases
安装完成之后进行启动

Redis启动

服务端启动命令:

redis-server.exe redis.windows.conf

客户端启动命令:

redis-cli.exe	

在这里插入图片描述
输入完成后会出现问题,这时windows版本下的一个bug
这里先输入:
在这里插入图片描述
输入完成后再次输入上述操作:
在这里插入图片描述
启动成功,在其中设置key-value并查询key-value
在这里插入图片描述
还可以将多个key-value写入到一个key中

idea集成Redis

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

spring:
  data:
    redis:
      host: localhost
      port: 6379

在操作是通过接口对象Redistemplate进行操作
操作之前需要通过ops*获取各种数据类型操作接口

    @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技术需要引入依赖:

        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>

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

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启动:
服务端启动:

mongod --dbpath=..\data\db

客户端启动:

mongo --host=127.0.0.1 --port=27017

启动的是服务端,进行数据库的初始化
在这里插入图片描述
启动客户端
在这里插入图片描述
当在下载过程中出现如下问题:
在这里插入图片描述
可以通过如下步骤进行解决:

  1. 下载对应的dll文件(通过互联网搜索即可)
  2. 拷贝到windows安装路径下的system32目录中
  3. 执行命令注册对应的dll文件
regsvr32 vcruntime140_1.dll
  • Mongodb的基础操作
    在这里插入图片描述
  • 基础查询

基础查询

  • 条件查询
    在这里插入图片描述

idea整合Mongodb

创建项目:
创建项目
在配置文件中进行配置

spring:
   data:
     mongodb:
       uri: mongodb://localhost/库名

在测试类中进行测试:

@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操作
    创建索引并指定规则:
    在这里插入图片描述

ES文档操作

  • 创建文档
    在这里插入图片描述
    在这里插入图片描述
  • 查询文档
    在这里插入图片描述
  • 条件查询

在这里插入图片描述

  • 删除文档
    在这里插入图片描述
  • 修改文档(全量修改)
    在这里插入图片描述
  • 修改文档(部分修改)
    在这里插入图片描述

idea整合ES

低级别ES整合

导入坐标依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        </dependency>

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

spring:
   elasticsearch:
      rest:
        uris: http://localhost:9200

进行相应的操作:

@Autowired
private ElasticsearRestTemplate template;

高级别ES整合

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

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
        </dependency>

需要手动创建客户端

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();
}

相关推荐

  1. 快速掌握使用Apache POI

    2024-04-12 00:44:02       29 阅读
  2. 快速掌握TS基础知识

    2024-04-12 00:44:02       54 阅读
  3. 【TypeScript】快速掌握TypeScript的基本语法

    2024-04-12 00:44:02       42 阅读
  4. 【DevOps基础篇】Dockerfile快速掌握

    2024-04-12 00:44:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-12 00:44:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-12 00:44:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-12 00:44:02       87 阅读
  4. Python语言-面向对象

    2024-04-12 00:44:02       96 阅读

热门阅读

  1. 蓝桥第 6 场 强者挑战赛 谁是帕鲁|数位DP模板

    2024-04-12 00:44:02       38 阅读
  2. @Configuration大悟!

    2024-04-12 00:44:02       39 阅读
  3. 【2】c++多线程技术之多线程标准库的使用

    2024-04-12 00:44:02       30 阅读
  4. Vue3中props的原理与使用

    2024-04-12 00:44:02       42 阅读
  5. python使用dataclass数据类有个坑

    2024-04-12 00:44:02       35 阅读
  6. 【QT教程】QT6布局管理

    2024-04-12 00:44:02       32 阅读
  7. js学习笔记5(API及DOM)

    2024-04-12 00:44:02       27 阅读