`
simo_lee
  • 浏览: 13011 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Redis快速入门:选择Key-Value Store

 
阅读更多
        大量的互联网用户选择Key-Value Store的原因具体是什么呢? 主要分为下面的2个主要原因:
        1、大规模的互联网应用
        对于google,ebay这样的互联网企业,每时每刻都有无数的用户在使用它们提供的互联网服务,这些服务带来的就是大量的数据吞吐量,在同一时间,会并发的有成千上万的连接对数据库进行操作。在这种情况下,单台服务器或者几台服务器远远不能满足这些数据处理的需求,简单的升级服务器性能这样的scale up的方式也不行,所以唯一可以采用的办法就是scale out了。scale out的方法有很多种,但大致分为两类:一类仍然采用RDBMS,然后通过对数据库的垂直和水平切割将整个数据库部署到一个集群上,这种方法的优点在于可以采用RDBMS这种熟悉的技术,但缺点在于它是针对特定应用的,就是说,由于应用的不同,切割的方法是不一样的。
        还有一类就是google所采用的方法,抛弃RDBMS,采用key-value形式的存储,这样可 以极大的增强系统的可扩展性(scalability),如果要处理的数据持续增大,多加机器就 可以了。事实上,key-value的存储就是由于BigTable等相关论文的发表慢慢进入人们的 视野的。
        2、云存储
        如果说上一个问题还有可以替代的解决方案(切割数据库)的话,那么对于云存储来说,也许key-value的store就是唯一的解决方案了。云存储简单点说就是构建一个大型的存储平台给别人用,这也就意味着在这上面运行的应用其实是不可控的。如果其中某个客户的应用随着用户的增长而不断增长时,云存储供应商是没有办法通过数据库的切割来达到scale的,因为这个数据是客户的,供应商不了解这个数据自然就没法作出切割。在这种情况下,key-value的store就是唯一的选择了,因为这种条件下的scalability必须是自动完成的,不能有人工干预。这也是为什么几乎所有的现有的云存储都是key-value形式的,例如Amazon的smipleDB,底层实现就是key-value,还有google的 GoogleAppEngine,采用的是BigTable的存储形式。也许唯一可能例外的是MS的解决方案,在Qcon大会上听说MS的Azure平台的下一个版本中就会推出基于RDBMS的云存储,尽管仍然对此保持怀疑。
      Key-Value Store最大的特点就是它的可扩展性,这也就是它最大的优势。所谓的可扩展性,看来这里包括了两方面内容。一方面,是指Key-Value Store可以支持极大的数据的存储,它的分布式的架构决定了只要有更多的机器,就能够保证存储更多的数据。另一方面,是指它可以支持数量很多的并发的查询。对于RDBMS,一般几百个并发的查询就可以让它很吃力了,而一个Key-Value Store,可以很轻松的支持上千的并发查询。下面而简单的罗列了一些特点:
        ●Key-value store:一个 key-value 数据存储系统,只支持一些基本操作,如:SET(key, value) 和 GET(key) 等;

  ●分布式:多台机器(nodes)同时存储数据和状态,彼此交换消息来保持数据一致,可视为一个完整的存储系统。

  ●数据一致:所有机器上的数据都是同步更新的、不用担心得到不一致的结果;

  ●冗余:所有机器(nodes)保存相同的数据,整个系统的存储能力取决于单台机器(node)的能力;

  ●容错:如果有少数 nodes 出错,比如重启、当机、断网、网络丢包等各种 fault/fail 都不影响整个系统的运行;

  ●高可靠性:容错、冗余等保证了数据库系统的可靠性。
分享到:
评论

相关推荐

    redis快速入门详解.ppt

    Redis 快速入门详解 Redis 是一款开源的、高性能的键值存储系统(key-value store),常被称作是一款数据结构服务器(data structure server)。Redis 的键值可以包括字符串(strings)类型,同时它还包括哈希...

    redis数据库安装包-Linux-x64

    - 输入命令进行交互,如`SET key value`、`GET key`等,验证Redis运行正常。 7. **监控与管理**: - Redis提供了`INFO`命令,用于查看服务器状态,包括内存使用、命令统计等。 - 可以使用第三方工具如`monit`、`...

    Redis实战.pdf

    在第一章"Redis 快速入门"中,作者介绍了Key-Value存储系统的背景,这是Redis的基础。Key-Value存储系统是一种简单高效的数据存储模型,其中每个键都有一个对应的值,这种模型特别适合大规模数据的快速读写操作。 ...

    Practical Tips for Using MySQL as a Scalable Key-Value Store

    MySQL具备多项特性,使其成为构建可扩展键值存储的良好选择: - **高性能**:MySQL能够处理大量并发请求,确保数据的快速读写。 - **事务持久性和恢复**:通过ACID事务支持确保数据的一致性和可靠性。 - **复制以...

    Redis实战《红丸出品》

    书中强调了选择Key-Value Store的三大原因:大规模的互联网应用需求、云存储的兴起以及Redis在实际应用中的成功案例。随着互联网应用规模的不断扩大,传统的关系型数据库难以满足高并发、大数据量的需求,Key-Value ...

    Redis中文入门手册

    1. **Key-Value Store**:作为一种键值存储系统,Redis可以替代MySQL用于存储简单数据,但主要优势在于其内存中的操作提供了极高的读写速度。 2. **持久化的缓存**:虽然Redis的数据主要存储在内存中,但它支持数据...

    redis-7.0.9Linux安装包

    在Redis客户端中,你可以执行各种命令,如`SET key value`、`GET key`等。 注意,为了保证Redis的数据安全,你可能还需要配置相应的防火墙规则,允许特定的IP地址访问Redis服务。同时,考虑使用`requirepass`配置项...

    Redis实战

    **1.2 为什么选择Key-Value Store** 随着互联网技术的发展,尤其是大规模互联网应用和云存储技术的普及,传统的数据库已经难以满足现代应用的需求。Key-Value Store因其简单、高效的特点,在以下方面表现出色: - ...

    《Redis实战》电子书

    #### 二、为什么选择Key-Value Store? 随着互联网应用规模的不断扩大,传统的关系型数据库逐渐显露出性能瓶颈。Key-Value Store作为一种新型的数据存储解决方案,具备以下几个显著优点: - **大规模的互联网应用*...

    redis server 安装过程 和参数配置 简单教程2

    Redis 是一个高性能的键值存储系统,常被用于数据库、缓存和消息中间件等场景。本教程将简要介绍Redis服务器的...在实际应用中,根据具体需求正确配置Redis参数和选择合适的数据类型,能有效提升系统的性能和稳定性。

    redis实战 pdf

    #### 四、为什么选择Key-Value Store - **大规模的互联网应用**:随着互联网应用规模的不断扩大,传统的关系型数据库在处理大规模数据时面临着性能瓶颈,而Key-Value存储系统能够更好地应对这种挑战。 - **云存储**...

    doctrine-key-value:将 Nice 与 Doctrine KeyValueStore 集成

    4. 使用KeyValueStore:现在你可以通过Doctrine的EntityManager来与KeyValueStore交互。例如,你可以使用`$entityManager->find()`来获取特定键的值,`$entityManager->persist()`和`$entityManager->flush()`来保存...

    redis-store:Redis 的 Prodio Generic Store 接口

    4. **哈希操作**:Redis 的哈希类型允许存储多个字段-值对,`hset(hashKey, field, value)` 用于设置字段值,`hget(hashKey, field)` 用于获取字段值,`hdel(hashKey, field)` 用于删除字段。 5. **列表操作**:使用...

    Redis实战》电子书.pdf

    Redis属于键值存储系统(Key-Value Store),这类系统在大规模互联网应用、云存储等领域得到了广泛应用。文中列举了几种不同的键值存储系统,例如Voldemort、Dynamo、memcachedb、Cassandra、memcached和Hypertable...

    Redis命令参考手册完整版.txt

    redis> SET type "key-value store" OK redis> SET website "redis.com" OK redis> DEL name type website (integer)3 ``` #### 二、KEYS 命令详解 - **命令格式**:`KEYS pattern` - **功能描述**:查找...

    C++课程作业基于跳表实现的轻型键值型数据库源码+项目说明.zip

    | :------: | :--------: | :--------: | :--------: | :--------: | | **10W** | 0.089594 s | 0.086015 s | 0.115649 s | 0.104312 s | | **50W** | 0.813954 s | 0.798541 s | 0.972145 s | 0.761612 s | | **100...

    redis 操作命令

    redis> SET type "key-value store" OK redis> SET website "redis.com" OK redis> DEL name type website (integer) 3 1.2 DUMP DUMP key 序列化给定 key ,并返回被序列化的值,使用RESTORE 命令可以将这个值反...

Global site tag (gtag.js) - Google Analytics