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();
}
相关推荐
周胡杰3 小时前
鸿蒙接入flutter环境变量配置windows-命令行或者手动配置-到项目的创建-运行demo项目
javascript·windows·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
柯南二号4 小时前
MacOS 用brew 安装、配置、启动Redis
redis
lizz6665 小时前
Python查询ES错误ApiError(406, ‘Content-Type ...is not supported
python·elasticsearch
星星点点洲7 小时前
【Redis】RedLock实现原理
redis·缓存
我来整一篇7 小时前
用Redis的List实现消息队列
数据库·redis·list
加什么瓦7 小时前
Redis——数据结构
数据库·redis·缓存
几道之旅8 小时前
分别在windows和linux上使用curl,有啥区别?
linux·运维·windows
lybugproducer8 小时前
浅谈 Redis 数据类型
java·数据库·redis·后端·链表·缓存
青山是哪个青山8 小时前
Redis 常见数据类型
数据库·redis·bootstrap