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();
}
相关推荐
sam-1231 小时前
k8s上部署redis高可用集群
redis·docker·k8s
SafePloy安策1 小时前
ES信息防泄漏:策略与实践
大数据·elasticsearch·开源
涔溪2 小时前
Ecmascript(ES)标准
前端·elasticsearch·ecmascript
看山还是山,看水还是。2 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
谷新龙0012 小时前
Redis运行时的10大重要指标
数据库·redis·缓存
精进攻城狮@2 小时前
Redis缓存雪崩、缓存击穿、缓存穿透
数据库·redis·缓存
csdn5659738505 小时前
Elasticsearch 重建索引 数据迁移
elasticsearch·数据迁移·重建索引
天幕繁星5 小时前
docker desktop es windows解决vm.max_map_count [65530] is too low 问题
windows·elasticsearch·docker·docker desktop
Elastic 中国社区官方博客5 小时前
Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
m1chiru5 小时前
Elasticsearch 实战应用:高效搜索与数据分析
elasticsearch