精华内容
下载资源
问答
  • 什么叫key-value数据库

    2014-07-10 09:48:21
    想要明白什么是key/value数据库,就必须了解哈希表(Hash Table)这种数据结构。 比如,Berkley DB就是典型的key/value数据库
  • key-value数据库

    2018-08-31 10:46:40
    key-value数据库: 1. Aerospike 社区版 ⁃ Aerospike是一个以分布式为核心基础,可基于行随机存取内存中索引、数据或SSD存储中数据的数据库。 ⁃ Aerospike主要用于广告业务,作为一个服务器端的cookie存储来...

    key-value数据库:

    1.  Aerospike 社区版
        ⁃   Aerospike是一个以分布式为核心基础,可基于行随机存取内存中索引、数据或SSD存储中数据的数据库。
        ⁃   Aerospike主要用于广告业务,作为一个服务器端的cookie存储来使用,在这种场景下读取和写入性能是至关重要的。
    2.  LevelDB
        ⁃   Leveldb是Google开发的一个非常高效的kv数据库,支持billion级别的数据量,在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计,特别是LSM算法。Leveldb已经作为存储引擎被Riak和Kyoto Tycoon所支持,在国内淘宝的Tair开源key-value存储也已经将LevelDB作为其持久化存储引擎,并部署在线上使用。
    3.  Scalaris
        ▪   Scalaris 是一个采用Erlang开发的分布式 key-value 存储系统,提供的 API 包括:Java、Python、Ruby和JSON。
    4.  Project Voldemort
        ⁃   Voldemort是一个分布式键值存储系统,是Amazon’s Dynamo的一个开源克隆。特性如下:
            a.  支持自动复制数据到多个服务器上。
            b.  支持数据自动分割所以每个服务器只包含总数据的一个子集。
            c.  提供服务器故障透明处理功能。
            d.  支持可拨插的序化支持,以实现复杂的键-值存储,它能够很好的5.集成常用的序化框架如:Protocol Buffers、Thrift、Avro和Java Serialization。
            e.  数据项都被标识版本能够在发生故障时尽量保持数据的完整性而不会影响系统的可用性。
            f.  每个节点相互独立,互不影响。
            g.  支持可插拔的数据放置策略
    5.  HyperDex
        ⁃   HyperDex是一个分布式、可搜索的键值存储系统,特性如下:
            a.  分布式KV存储,系统性能能够随节点数目线性扩展
            b.  吞吐和延时都能秒杀现在风头正劲的MonogDB,吞吐甚至强于Redis
            c.  使用了hyperspace hashing技术,使得对存储的K-V的任意属性进行查询成为可能
    6.  Berkeley DB
        ⁃   Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤。
    7.  Apache Accumulo
        ⁃   Apache Accumulo 是一个可靠的、可伸缩的、高性能的排序分布式的 Key-Value 存储解决方案,基于单元访问控制以及可定制的服务器端处理。Accumulo使用 Google BigTable 设计思路,基于 Apache Hadoop、Zookeeper 和 Thrift 构建。
    8.  Redis
        ⁃   Redis是一个高性能的key-value存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。与memcached一样,为了保证效率,数据都是缓存在内存中,区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了主从同步。
        ⁃   Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python、Ruby、Erlang、PHP客户端,使用很方便。
    9.  Apache Cassandra
        ⁃   Apache Cassandra是一个混合型的非关系数据库,它最初由Facebook开发,用于储存特别大的数据。
        ⁃   Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其它节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。
    

    参考:http://bigdata.51cto.com/art/201611/521641.htm
    官网:
    1. http://www.aerospike.com/press-releases/aerospike-launches-free-community-edition/ Aerospike 社区版
    2. http://code.google.com/p/leveldb/ LevelDB
    3. http://scalaris.googlecode.com/ Scalaris
    4. http://project-voldemort.com/ Project Voldemort
    5. http://hyperdex.org/ HyperDex
    6. http://www.oracle.com/technetwork/products/berkeleydb/overview/index.html Berkeley DB
    7. http://accumulo.apache.org/ Apache Accumulo
    8. http://redis.io/ Redis
    9. http://cassandra.apache.org/ Apache Cassandra

    展开全文
  • Key-value数据库

    万次阅读 2014-11-05 23:06:41
    Key-value数据库是一种以键值对存储数据的一种数据库,类似java中的map。可以将整个数据库理解为一个大的map,每个键都会对应一个唯一的值。Key-value数据库代表的有redis。Redis是一个Key-Value存储系统。和...

    1.1.1 NoSQL简介
           对于不了解NoSQL的人都会认为NoSQL为No SQL,即不是SQL。但是这种理解是错误的,NoSQL应该是Not Only SQL,翻译过来为不仅仅是SQL。从这个翻译中我们可以看出来,NoSQL仍然还是SQL。
    NoSQL是一场反SQL的革命性的数据库运动,在很早就有人提出来,但是一直没有很好地发展,直到互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
    今天NoSQL泛指这样一类数据库和数据存储,它们不遵循经典关系型数据库(RDBMS)原理,且常与Web规模的大型数据集有关。
          1.1.2 NoSQL发展背景及优势
    随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,暴漏许多问题,例如:
    1、 High performance - 对数据库高并发读写的需求
    web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求。
    2、 Huge Storage - 对海量数据的高效率存储和访问的需求
    对于大型的SNS网站,每天用户产生海量的用户动态,以国外的Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,
    3、 High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求
    在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实现扩展呢?
    在上面提到的“三高”需求面前,关系数据库遇到了难以克服的障碍,而对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地,例如:
    1 数据库事务一致性需求
    2 数据库的写实时性和读实时性需求
    3 对复杂的SQL查询,特别是多表关联查询的需求
    因此,关系数据库在这些越来越多的应用场景下显得不那么合适了,为了解决这类问题的非关系数据库应运而生。
    NoSQL 是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语在 2009 年初得到了广泛认同。
    NoSQL数据库有以下优点:
    1 简单的扩展
    2 快速的读写
    3 低廉的成本
    4 灵活的数据类型
    NoSQL虽然优点众多,但是它还是有缺点的,例如:
    1 不提供对SQL的支持

    2 产品混乱,许多缺乏厂商的支持


    Key-value数据库是一种以键值对存储数据的一种数据库,类似java中的map。可以将整个数据库理解为一个大的map,每个键都会对应一个唯一的值。Key-value数据库代表的有redis。Redis是一个Key-Value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。另外redis是一种内存型的数据库,所以可以对外提供很好地读写操作,但是同样也暴露出内存占用高,数据持久化不易等问题。

    展开全文
  • NOSQL数据库中的Key-Value数据库介绍

    千次阅读 2013-03-14 14:46:35
    Key-Value数据库是一种非关系数据库,它使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。键和值都可以是从简单对象到复杂复合对象的任何内容,且不同数据行的value的类型...

    Key-Value数据库是一种非关系数据库,它使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。键和值都可以是从简单对象到复杂复合对象的任何内容,且不同数据行的value的类型可以完全不同。

    1,由于record之间通常没有关联,键值数据库是高度可分区的。

    2,Key-Value数据库,尤其是内存Key-Value数据库可以实现很高的读写速度,并发度,一致性延迟,支持事务等能力。

    3,Key-Value数据库通常用Hash Table来实现,因为对Hash Table的读写可实现O(1)。

    Redis是最著名的内存KV数据库产品。

    Amazon DynamoDB也很流行。

    另外Oracle也与时俱进的推出了自己的KV数据库以及云服务。Oracle NoSQL Database (OND) is a NOSQL-type distributed key-value database。It provides transactional semantics for data manipulation, horizontal scalability, and simple administration and monitoring. Oracle released Oracle Autonomous NoSQL Database Cloud (OANDC) on August 10, 2018.

    展开全文
  • key/value数据库

    千次阅读 2016-01-05 21:06:19
    想要明白什么是key/value数据库,就必须了解哈希表(Hash Table)这种数据结构。 Google搜索到的头条: 散列表(也叫哈希表),是根据关键码值直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中...

    想要明白什么是key/value数据库,就必须了解哈希表(Hash Table)这种数据结构。

    Google搜索到的头条:

    散列表(也叫哈希表),是根据关键码值直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。
    这个映射函数叫做散列函数,存放记录的数组叫做散列表。


    哈希表的优点:

    数据结构中,有个时间算法复杂度O(n)的概念来衡量某种算法在时间效率上的优劣。
    哈希表的理想算法复杂度为O(1),也就是说利用哈希表查找某个值,系统所使用的时间在理想情况下为定值,这就是它的优势。
    那么哈希表是如何做到这一点的呢?

    我们定义一个很大的有序数组,想要得到位于该数组第n个位置的值,它的算法复杂度为O(1)。
    哈希表利用哈希函数将需要存储的内容的关键值转换为这个有序数组中的某个值,在被存储内容和有序数组之间建立了映射关系。
    这样,下次我们对这个值进行查找时只要使用同一个哈希函数对关键值进行转换,找到这个数组值 就可以了。


    比喻例子:

    假设我们要做个存储结构,需要存储下来三国中的人物,以及他们的详细信息。
    我们用他们的名字来作为存储 的关键值,例如:刘备,曹操,孙权,关羽,张飞……等等。
    这个时候我们如果想用一般的方法来查找这些英雄豪杰,需要遍历整个存储空间,如果这些英雄豪杰一 共有n个,那么这时候的时间算法复杂度为O(n)。显然如果n值很大,每次想要找到某个英雄就需要比较长的时间。
    我们先定义一个大的有序结构数组HashValue[m],用来存放各位英雄豪杰的信息。然后编写一个哈希函数ChangeToHashValue (name),函数的具体内容就不细说了,反正这个函数会将这些做为关键值的名字转换为HashValue[m]中的某个下标值x。然后可以将英雄的信息 放进HashValue[x]中去。这样,可以将所有英雄的信息存储起来。当查询的时候再使用哈希函数 ChangeToHashValue(name)得到这个下标值,这样就很容易得到了这个英雄的信息。

    例如:ChangeToHashValue(刘备)为10,那么就将刘备存储到HashValue [10]里面。当查询的时候再次使用ChangeToHashValue(刘备)得到10,这个时候我们就可以很容易找到刘备的所有信息。在实际应用中如果我们想把所有的英雄豪杰都存储进系统时,需要定义m>n。就是数组的大小要大于需要存储的信息量,所以说哈希表是一个以空间换取时间的数据结构

    这时候又会出现另外一个问题:

    当ChangeToHashValue(关羽)和ChangeToHashValue(张飞)得到的值是一样的,都是250,我们岂不是在存储过程中会遇到麻烦,怎么安排他们二位的地方呢(总不能让二位打一架,谁赢了谁呆在那吧),这就需要一个解决冲突的方法。
    当遇到这种情况时我们可以这样处理,先存储好了关羽,当张飞进入系统时会发现关羽已经是250了,那咱就加一位,251得了,这不就解决了。
    我们查找张飞的时候也是,一看250不是张飞,那就加个1,就找到了。
    这时还存在一个问题,直接用ChangeToHashValue(赵云)为251,张飞已经早早占了他的地方,那就再加1存到252呗。
    我们发现,当哈希函数冲突发生的机率很高时,可能会有一群英雄豪杰在250这个值后面扎堆排队。此时查找的时候,时间算法复杂度早已不是O(1)了(所以我们说理想情况下哈希表的时间算法复杂度为O(1))。

    这就是说哈希函数的编写是哈希表的一个关键问题,会涉及到一个存储值在哈希表中的统计分布。如果哈希函数已经定义好了,冲突的解决就成为了改变系统性能的关键因素。其实还有很多种方法来解决冲突情况下的存储和查找问题,不一定非要线性向后排队,如果有好的哈希表冲突的解决方法也能很大程度上提高系统的效率。

    展开全文
  • Key-Value数据库 Redis

    千次阅读 2016-07-13 12:13:34
    Redis是开源NoSQL中Key-Value数据库的代表,采用C语言开发,遵循BSD License。支持内存、磁盘持久化存储,同时它具有非常丰富的数据类型,包括字符串、链表、有序集合等。高可用性方面自带主从架构,集群功能正在开发...
  • key-value数据库的一种实现

    千次阅读 2016-08-07 15:53:02
    关于KV存储 什么是NOSQLNoSQL,指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,... Key_value数据库的物理组成存储系统主要由索引文件(.idx)和存储文件(.mmap)组成,...
  • 浅尝key-value数据库(一)——一览NoSQL 最近由于一个项目的关系,研究了一下key-value数据库这个最近很火的概念。本系列从项目需求的角度分析并测试了几个key-value数据库的性能。   key-value数据库,又...
  • Key/Value数据库redis

    千次阅读 2011-11-23 15:37:09
     Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、se
  • redis是什么?是缓存,其实是一个key/value数据库,是一个nosql数据库
  • 高性能key-value数据库

    2012-08-29 08:06:01
    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便...
  • 分布式key-value数据库LightCloud的设计原理 2010-03-12 9:24 LightCloud是最近看到的一个比较轻巧的分布式key-value数据库,尽管这类软件已经让人觉得审美疲劳,但我仍然觉得它的设计思路值 得一提。...
  • Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便...
  • 满足极高读写性能需求的Key-Value数据库 高性能Key-Value数据库的主要特点就是具有极高的并发读写性能,Redis,Tokyo Cabinet, Flare,这3个Key-Value DB都是用C编写的,他们的性能都相当出色,但出了出色的性能,...
  • Redis是一个开源的 C语言编写的Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型...
  • 不过当读到Hash算法与数据库实现这一章时,文中给出了一个使用php实现一个简单的key-value数据库的实例,这引起了我的兴趣。仔细阅读后觉得不过瘾,所以仿照给出的例子自己实践了一遍,来巩固一下学习的内容,同时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,451
精华内容 18,180
关键字:

value数据库