什么时候该使用NoSQL存储数据库?
2015-04-13 11:54
471 查看
原文地址:http://www.jdon.com/39240
文章总结以下几点:
1 Redis 是什么?
通常而言目前的数据库分类有几种,包括 SQL/NSQL,,关系数据库,键值数据库等等 等,分类的标准也不以,Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数 据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT) 等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。
更为详细的描述请参考如下:
http://code.google.com/p/redis/wiki/index
Redis官方也同样提供了一个名为Retwis的项目代码,可以对照着官方学习。
2 Redis用来做什么?
通常局限点来说,Redis也以消息队列的形式存在,作为内嵌的List存在,满足实时的高并发需求。而通常在一个电商类型的数据处理过程之中,有关商品,热销,推荐排序的队列,通常存放在Redis之中,期间也包扩Storm对于Redis列表的读取和更新。
一个详细的示范用例,还请参考本ID的另外一篇博文: Storm 【topN】 排序。期间使用的是:Storm-redis-pubsub的接口
3 Redis的优点
性能极高 – Redis能支持超过 100K+ 每秒的读写频率。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
[b]4 Redis的缺点[/b]
是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
总结: Redis受限于特定的场景,专注于特定的领域之下,速度相当之快,目前还未找到能替代使用产品。
文章总结以下几点:
1.频繁写,很少读统计数据,比如点击率,应该使用基于内存的in-memory的key/value存储数据库如Redis, 或者update-in-place 文本存储如MongoDB.
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。我一般用在实时性比较强数据,数据库频繁插入、更新或删除的场景。减少对数据库的操作
1 Redis 是什么?通常而言目前的数据库分类有几种,包括 SQL/NSQL,,关系数据库,键值数据库等等 等,分类的标准也不以,Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数 据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT) 等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。
更为详细的描述请参考如下:
http://code.google.com/p/redis/wiki/index
Redis官方也同样提供了一个名为Retwis的项目代码,可以对照着官方学习。
2 Redis用来做什么?
通常局限点来说,Redis也以消息队列的形式存在,作为内嵌的List存在,满足实时的高并发需求。而通常在一个电商类型的数据处理过程之中,有关商品,热销,推荐排序的队列,通常存放在Redis之中,期间也包扩Storm对于Redis列表的读取和更新。
一个详细的示范用例,还请参考本ID的另外一篇博文: Storm 【topN】 排序。期间使用的是:Storm-redis-pubsub的接口
3 Redis的优点
性能极高 – Redis能支持超过 100K+ 每秒的读写频率。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
[b]4 Redis的缺点[/b]
是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
总结: Redis受限于特定的场景,专注于特定的领域之下,速度相当之快,目前还未找到能替代使用产品。
2.大数据Big Data (如天气数据 业务分析数据) 可以使用分布式数据库系统如Hadoop.
3.二进制数据(如MP3s 和PDFs文档) ,直接存储直接发送给客户端浏览器,如Amazon S3.
4.短暂数据 (如web sessions, 锁状态, 短生命周期状态) 可以保存在如Memcache. (banq:其实就是内存中in-memory)
5.如果你需要在多个节点复制数据(比如在web应用和移动设备之间同步音乐数据库), 可以使用复制特性如CouchDB.
6.高可用性应用, 高严格要求当机时间,甚至是零当机。自动集群, 冗余数据库,如Casandra 和 Riak.
相关文章推荐
- noSQL数据库相关软件介绍(大数据存储时候,必须使用)
- noSQL数据库相关软件介绍(大数据存储时候,必须使用)
- levelDB数据库使用及实例 - 高性能nosql存储数据库
- NoSQL数据库:Redis内存使用优化与存储
- RethinkDB是什么?—— 面向文档的NOSQL数据库,MVCC+Btree索引,pushes JSON to your apps in realtime采用push思路,优化的ssd存储
- Hive简介、什么是Hive、为什么使用Hive、Hive的特点、Hive架构图、Hive基本组成、Hive与Hadoop的关系、Hive与传统数据库对比、Hive数据存储(来自学习资料)
- NoSQL数据库:Redis内存使用优化与存储
- NoSQL数据库:Redis内存使用优化与存储
- NoSQL数据库:Redis内存使用优化与存储
- NoSQL:列存储数据库之HBase介绍
- [转载] 使用 NoSQL 数据库分析大规模数据
- 【java工具】使用jdbc访问数据库获取某个存储过程信息及下面参数信息
- NoSQL和MemeryCache的出现意味着传统数据库使用方式的变革吗?(arvin-推荐--看评论)
- 使用SSH在做插入和修改的时候即使数据库中给字段设置了默认值还是没有用,在表对应的配置文件中也不知道该如何配置。。请教下。。
- 大家用hibernate的时候, 使用hibernate的sequence自动增长序列, 数据库是oracle
- 使用hibernate查询数据库时候报未明确定义列
- NoSQL 数据库的使用场景
- NoSQL 数据库的使用场景
- 使用SVN时候我们应该注意些什么?
- 第一篇 NOSQL数据库MongoDB数据库的安装使用