一、mysql:关系型数据库管理系统

使用场景:存放持久化数据,读取速度慢

二、Redis:NoSQL数据库之一,是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存可持久化的日志型、Key-Value数据库,并提供多种语言的API。

1)基于内存运行,性能高,支持数据持久化,可将内存的数据保存在磁盘中,重启后可以再次加载来使用;

2)支持主从备份,高可用和分布式;

3)key-value存储,value可以是字符串string、哈希hash、列表list、集合sets和有序集合等类型;

4)redis存在过期策略和淘汰机制,内存不足时,可以实施淘汰策略,有以下6种策略可以选择:

voltile-lru(从设置过期时间的数据中挑选最近最少使用的数据淘汰)

volatile-ttl(从设置过期时间的数据中,挑选即将要过期的数据淘汰)

volatile-random(从设置过期时间的数据中,挑选任意数据淘汰)

allkeys-lru(从数据中挑选最近最少使用的数据淘汰)

allkeys-random(从数据中任意挑选数据淘汰)

no-enviction(不淘汰,内存不足时写入报错)

使用场景:不支持事务,关系复杂的场景不适用redis,可以用来配合关系型数据库做缓存,以及一些持久化数据,适用于一些高并发读写。

三、Elasticsearch:非关系型数据库,是一个实时的搜索引擎。实际就是实时把日志数据存储下来,并且进行检索。

1)可扩展性,支持主从,扩展容易,支持很多第三方插件

2)高可用,集群和分布式,部分节点挂了也可以自动恢复数据和主从切换

3) RESTful API,通过http接口试用json进行操作数据

使用场景:大数据量下的检索,数据分析,日志分析,实时、高并发低延迟的场景应用较多

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐