在windows下用哪些内存数据库,类似redis的

在windows下用哪些内存数据库,类似redis的,第1张

内存数据从范型上可以分为关系型内存数据库和键值型内存数据库。在实际应用中内存数据库主要是配合oracle或mysql等大型关系数据库使用,关注性能。

作用类似于缓存,并不注重数据完整性和数据一致性。

基于键值型的内存数据库比关系型更加易于使用,性能和可扩展性更好,因此在应用上比关系型的内存数据库使用更多。

比较FastDB、Memcached和Redis主流内存数据库的功能特性。

FastDB的特点包括如下方面:

1、FastDB不支持client-server架构因而所有使用FastDB的应用程序必须运行在同一主机上;

2、fastdb假定整个数据库存在于RAM中,并且依据这个假定优化了查询算法和接口。

3、fastdb没有数据库缓冲管理开销,不需要在数据库文件和缓冲池之间传输数据。

4、整个fastdb的搜索算法和结构是建立在假定所有的数据都存在于内存中的,因此数据换出的效率不会很高。

5、Fastdb支持事务、在线备份以及系统崩溃后的自动恢复。

6、fastdb是一个面向应用的数据库,数据库表通过应用程序的类信息来构造。

FastDB不能支持Java API接口,这使得在本应用下不适合使用FastDB。

Memcached

Memcached是一种基于Key-Value开源缓存服务器系统,主要用做数据库的数据高速缓冲,并不能完全称为数据库。

memcached的API使用三十二位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同的机器上。当表格满了以后,接下来新增的资料会以LRU机制替换掉。由于 memcached通常只是当作缓存系统使用,所以使用memcached的应用程式在写回较慢的系统时(像是后端的数据库)需要额外的程序更新memcached内的资料。

memcached具有多种语言的客户端开发包,包括:Perl、PHP、JAVA、C、Python、Ruby、C#。

Redis

Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了C++、Java、Python,Ruby,Erlang,PHP客户端。

EasyFlash是一款开源的轻量级嵌入式Flash存储器库,主要为MCU提供便捷、通用的上层应用接口,它提供的主要功能有3种:Env(环境变量)、IAP(在线升级)以及Log(Flash存储日志)。这里主要介绍可以让Flash变为小型键值存储数据库的Env功能。

增删改查

下图为通过控制台(终端)来调用环境变量的常用接口,演示了环境变量 “temp” 从创建到保存,再修改,最后删除的过程。这些接口都支持被应用层直接调用。

主要使用方法如下:

/ 创建Key名为temp的环境变量,并赋初值"123" /ef_set_env("temp","123");/ 修改环境变量temp的值为"456" /ef_set_env("temp","456");/ 读取环境变量temp的值 /char temp = ef_get_env("temp");/ 删除环境变量temp /ef_set_env("temp","");

通常数据库分为关系型数据库和非关系型数据库,关系型数据库的优势到现在也是无可替代的,比如MySQL、SQLServer、Oracle、DB2、SyBase、Informix、PostgreSQL以及比较小型的Aess等等数据库,这些数据库支持复杂的SQL *** 作和事务机制,适合小量数据读写场景;但是到了大数据时代,人们更多的数据和物联网加入的数据已经超出了关系数据库的承载范围。

大数据时代初期,随着数据请求并发量大不断增大,一般都是采用的集群同步数据的方式处理,就是将数据库分成了很多的小库,每个数据库的数据内容是不变的,都是保存了源数据库的数据副本,通过同步或者异步方式保证数据的一致性,每个库设定特定的读写方式,比如主数据库负责写 *** 作,从数据库是负责读 *** 作,等等根据业务复杂程度以此类推,将业务在物理层面上进行了分离,但是这种方式依旧存在一定的负载压力的问题,企业数据在不断的扩增中,后面就采用分库分表的方式解决,对读写负载进行分离,但是这种实现依旧存在不足,且需要不断进行数据库服务器扩容。

NoSQL数据库大致分为5种类型

1、列族数据库:BigTable、HBase、Cassandra、AmazonSimpleDB、HadoopDB等,下面简单介绍几个

(1)Cassandra:Cassandra是一个列存储数据库,支持跨数据中心的数据复制。它的数据模型提供列索引,log-structured修改,支持反规范化,实体化视图和嵌入超高速缓存。

(2)HBase:ApacheHbase源于Google的Bigtable,是一个开源、分布式、面向列存储的模型。在Hadoop和HDFS之上提供了像Bigtable一样的功能。

(3)AmazonSimpleDB:AmazonSimpleDB是一个非关系型数据存储,它卸下数据库管理的工作。开发者使用Web服务请求存储和查询数据项

(4)ApacheAumulo:ApacheAumulo的有序的、分布式键值数据存储,基于Google的BigTable设计,建立在ApacheHadoop、Zookeeper和Thrift技术之上。

(5)Hypertable:Hypertable是一个开源、可扩展的数据库,模仿Bigtable,支持分片。

(6)AzureTables:WindowsAzureTableStorageService为要求大量非结构化数据存储的应用提供NoSQL性能。表能够自动扩展到TB级别,能通过REST和ManagedAPI访问。

2、键值数据库:Redis、SimpleDB、Scalaris、Memcached等,下面简单介绍几个

(1)Riak:Riak是一个开源,分布式键值数据库,支持数据复制和容错。(2)Redis:Redis是一个开源的键值存储。支持主从式复制、事务,Pub/Sub、Lua脚本,还支持给Key添加时限。

(3)Dynamo:Dynamo是一个键值分布式数据存储。它直接由亚马逊Dynamo数据库实现;在亚马逊S3产品中使用。

(4)OracleNoSQLDatabase:来自Oracle的键值NoSQL数据库。它支持事务ACID(原子性、一致性、持久性和独立性)和JSON。

(5)OracleNoSQLDatabase:具备数据备份和分布式键值存储系统。

(6)Voldemort:具备数据备份和分布式键值存储系统。

(7)Aerospike:Aerospike数据库是一个键值存储,支持混合内存架构,通过强一致性和可调一致性保证数据的完整性。

3、文档数据库:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下面简单介绍几个

(1)MongoDB:开源、面向文档,也是当下最人气的NoSQL数据库。

(2)CounchDB:ApacheCounchDB是一个使用JSON的文档数据库,使用Javascript做MapRece查询,以及一个使用>

(3)Couchbase:NoSQL文档数据库基于JSON模型。

(4)RavenDB:RavenDB是一个基于NET语言的面向文档数据库。

(5)MarkLogic:MarkLogicNoSQL数据库用来存储基于XML和以文档为中心的信息,支持灵活的模式。

4、图数据库:Neo4J、InfoGrid、OrientDB、GraphDB,下面简单介绍几个

(1)Neo4j:Neo4j是一个图数据库;支持ACID事务(原子性、独立性、持久性和一致性)。

(2):一个图数据库用来维持和遍历对象间的关系,支持分布式数据存储。

(3):是结合使用了内存和磁盘,提供了高可扩展性,支持SPARQ、RDFS和Prolog推理。

5、内存数据网格:Hazelcast、OracleCoherence、TerracottaBigMemorry、GemFire、Infinispan、GridGain、GigaSpaces,下面简单介绍几个

(1)Hazelcast:HazelcastCE是一个开源数据分布平台,它允许开发者在数据库集群之上共享和分割数据。

(2)OracleCoherence:Oracle的内存数据网格解决方案提供了常用数据的快速访问能力,一致性支持事务处理能力和数据的动态划分。

(3)TerracottaBigMemory:来自Terracotta的分布式内存管理解决方案。这项产品包括一个Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop连接器。

(4)GemFire:VmwarevFabricGemFire是一个分布式数据管理平台,也是一个分布式的数据网格平台,支持内存数据管理、复制、划分、数据识别路由和连续查询。

(5)Infinispan:Infinispan是一个基于Java的开源键值NoSQL数据存储,和分布式数据节点平台,支持事务,peer-to-peer及client/server架构。

(6)GridGain:分布式、面向对象、基于内存、SQLNoSQL键值数据库。支持ACID事务。

(7)GigaSpaces:GigaSpaces内存数据网格能够充当应用的记录系统,并支持各种各样的高速缓存场景。

键值存储的四大基本要素是;数据,计算机,顺序,链式。

键值(key)是windows中注册表中的概念。键值位于注册表结构链末端,和文件系统的文件类似,包含当前计算机及应用程序执行时使用的实际配置信息和数据。键值包含几种数据类型,以适应不同环境的使用需求。注册表中,是通过键和子键来管理各种信息。

首先 文档数据库 和 键值数据库 都是 NoSQL\x0d\\x0d\第二 文档数据库 最典型的是 MongoDB 而 键值数据库 最典型的是 Redis\x0d\\x0d\第三 文档数据库 提供嵌入式文档 这对于非规范化非常有用 文档数据库将经常查询的数据存储在同一个文档中 而不是存储在表中 如果一个应用程序需要存储不同的属性 以及大量的数据 那么文档数据库将会是一个很好的选择\x0d\\x0d\第四 键值数据库 适用于那些频繁读写 拥有简单数据模型的应用 键值数据库中存储的值 可以是简单的标量值 如整数或布尔值 也可以是结构化数据类型 比如列表和 JSON 结构 键值数据库通常具有简单的查询功能 允许通过键来查找一个值

考虑到我们使用的时候多半会用到字符串,所以我进行了一点画蛇添足的扩展

总结,leveldb用起来就像是一个硬盘版的redis,唯一不足的是没有提供key的过滤功能

PS这货是谷歌的亲儿子,应该可以放心的在生成环境中使用

以上就是关于在windows下用哪些内存数据库,类似redis的全部的内容,包括:在windows下用哪些内存数据库,类似redis的、如何在嵌入式产品中应用键值存储数据库、大数据常用哪些数据库(什么是大数据库)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9389293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存