场景?这个词很内涵- -
mysql首先它是免费,支持数据量也不小,一般对于小型网站,数据量不大,最多几万条的,采用MYSQL
而ORACLE则是大型数据库,数据量支持达到上亿,对于大型公司,企业的系统就采用ORACLE,比如电信啊`银行啊`数据量大`所以用这个`
redis开创了一种新的数据存储思路,使用redis,我们不用在面对功能单调的数据库时,而是利用redis灵活多变的数据结构和数据 *** 作。
1、首先redis内部使用一个redisobject对象来表示所有的key和value,redisobject最主要的信息如上图所示:type代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存储的是。
2、一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则代表实际redis内部是按数值型类存储和表示这个字符串的,当然前提是这个字符串本身可以用数值表示,比如:"123""456"这样的字符串。
3、这里需要特殊说明一下vm字段,只有打开了redis的虚拟内存功能,此字段才会真正的分配内存,该功能默认是关闭状态的,该功能会在后面具体描述通过发现redis使用redisobject来表示所有的key/value数据是比较浪费内存的,当然这些内存管理成本的付出主要redis不同数据类型提供一个统一的管理接口,实际作者也提供了多种方法帮助我们尽量节省内存使用,我们随后会具体讨论。
文档数据库
源起:受Lotus Notes启发。
数据模型:包含了key-value的文档集合
例子:CouchDB, MongoDB
优点:数据模型自然,编程友好,快速开发,web友好,CRUD。
图数据库
源起: 欧拉和图理论。
数据模型:节点和关系,也可处理键值对。
例子:AllegroGraph, InfoGrid, Neo4j
优点:解决复杂的图问题。
关系数据库
源起: E F Codd 在A Relational Model of Data for Large Shared Data Banks提出的
数据模型:各种关系
例子:VoltDB, Clustrix, MySQL
优点:高性能、可扩展的OLTP,支持SQL,物化视图,支持事务,编程友好。
对象数据库
源起:图数据库研究
数据模型:对象
例子:Objectivity, Gemstone
优点:复杂对象模型,快速键值访问,键功能访问,以及图数据库的优点。
Key-Value数据库
源起:Amazon的论文 Dynamo 和 Distributed HashTables。
数据模型:键值对
例子:Membase, Riak
优点:处理大量数据,快速处理大量读写请求。编程友好。
BigTable类型数据库
源起:Google的论文 BigTable。
数据模型:列簇,每一行在理论上都是不同的
例子:HBase, Hypertable, Cassandra
优点:处理大量数据,应对极高写负载,高可用,支持跨数据中心, MapReduce。
数据结构服务
源起:
数据模型:字典 *** 作,lists, sets和字符串值
例子:Redis
优点:不同于以前的任何数据库
网格数据库
源起:数据网格和元组空间研究。
数据模型:基于空间的架构
例子:GigaSpaces, Coherence
优点:适于事务处理的高性能和高扩展性
服务器应用非常广泛,既可以作为简单的Web服务器单独使用,也可以与其他产品(如OSS、CDN等)搭配提供强大的多媒体解决方案。以下是服务器的典型应用场景。
企业官网、简单的Web应用
网站初始阶段访问量小,只需要一台低配置的云服务器ECS即可运行应用程序、数据库、存储文件等。随着网站发展,您可以随时提高服务器的配置,增加服务器数量,无需担心低配服务器在业务突增时带来的资源不足问题。
多媒体、大流量的APP或网站
服务器与对象存储OSS搭配,将OSS作为静态、视频、下载包的存储,以降低存储费用,同时配合CDN和负载均衡,可大幅减少用户访问等待时间、降低带宽费用、提高可用性。
数据库
支持对I/O要求较高的数据库。使用较高配置的I/O优化型服务器同时采用SSD云盘,可实现支持高I/O并发和更高的数据可靠性。也可以采用多台稍微低配的I/O优化型服务器,搭配负载均衡,实现高可用架构。
访问量波动大的APP或网站
某些应用,如12306网站,访问量可能会在短时间内产生巨大的波动。通过使用d性伸缩,实现在业务增长时自动增加服务器,并在业务下降时自动减少服务器,保证满足访问量达到峰值时对资源的要求,同时降低了成本。如果搭配负载均衡,则可以实现高可用架构。
使用场景:
(1)网站数据:MongoDB适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
(2)缓存:由于性能很高,MongoDB也适合作为信息基础设施的缓存层。在系统重启之后,由MongoDB搭建的持久化缓存层可以避免下层的数据源过载。
(3)大尺寸,低价值的数据。
(4)高伸缩性的场景:MongoDB适合由数十或数百台服务器组成的数据库。
(5)用于对象及JSON数据的存储:MongoDB的BSON数据格式适合文档化格式的存储及查询。
mongodb设计特点:
(1)面向集合存储,容易存储对象类型的数据。在MongoDB 中数据被分组存储在集合中,集合类似RDBMS 中的表,一个集合中可以存储无限多的文档。
(2)模式自由,采用无模式结构存储。在MongoDB 中集合中存储的数据是无模式的文档,采用无模式存储数据是集合区别于RDBMS 中的表的一个重要特征。
(3)支持完全索引,可以在任意属性上建立索引,包含内部对象。MongoDB的索引和RDBMS 的索引基本一样,可以在指定属性、内部对象上创建索引以提高查询的速度。除此之外,MongoDB 还提供创建基于地理空间的索引的能力。
(4)支持查询。MongoDB 支持丰富的查询 *** 作,MongoDB 几乎支持SQL中的大部分查询。
(5)强大的聚合工具。MongoDB 除了提供丰富的查询功能外,还提供强大的聚合工具,如count、group 等,支持使用MapReduce 完成复杂的聚合任务。
以上就是关于在什么场景下,你会选用mysql做为数据库,什么场景下,会选用oracle做为数据库为什么全部的内容,包括:在什么场景下,你会选用mysql做为数据库,什么场景下,会选用oracle做为数据库为什么、Redis数据库适合使用于哪些应用场景、常见NoSQL数据库的应用场景是怎么样的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)