前言
这里只是一些安装后的基础操作,后期会学习更加深入的操作
基础操作
- 前言
- Redis
- Redis启动
- idea集成Redis
- jedis技术
- Mongodb
- windows版Mongodb的安装
- idea整合Mongodb
- ES(Elasticsearch)
- ESwindows下载
- ES文档操作
- idea整合ES
- 低级别ES整合
- 高级别ES整合
Redis
Redis是一款基于Key-value存储结构的内存级NoSQL数据库
特点:
- 支持多种数据存储格式
- 支持持久化
- 支持集群
首先下载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区别:
- jdis连接Redis服务器是直连模式,当多线程模式下使用jedis会存在线程安全问题,解决方案可以通过配置连接池使每个连接专用,这样整体性能就大受影响
- 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
启动的是服务端,进行数据库的初始化
启动客户端
当在下载过程中出现如下问题:
可以通过如下步骤进行解决:
- 下载对应的dll文件(通过互联网搜索即可)
- 拷贝到windows安装路径下的system32目录中
- 执行命令注册对应的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文档操作
- 创建文档
- 查询文档
- 条件查询
- 删除文档
- 修改文档(全量修改)
- 修改文档(部分修改)
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();
}