Redis(1)-概述及应用领域
1.什么是Redis?
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求。是一种非关系型数据库。
2.非关系型数据库
前面提到,redis是一个nosql(not only sql)数据库,即非关系型数据库。这里涉及到一个概念:非关系型数据库。我们在java开发中,常用的mysql数据库是一种关系型数据库。那么非关系型数据库和关系型数据库分别是什么,各自的特性以及优缺点如下所示。
数据库 类型 | 特性 | 优点 | 缺点 |
关系型数据库 | 1、关系型数据库,是指采用了关系模型来组织 数据的数据库; 2、关系型数据库的最大特点就是事务的一致性; 3、简单来说,关系模型指的就是二维表格模型, 而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 | 1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解; 2、使用方便:通用的SQL语言使得操作关系型数据库非常方便; 3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率; 4、支持SQL,可用于复杂的查询。 | 1、为了维护一致性所付出的巨大代价就是其读写性能比较差; 2、固定的表结构; 3、高并发读写需求; 4、海量数据的高效率读写; |
非关系型数据库 MongoDb、redis、HBase | 1、使用键值对存储数据; 2、分布式; 3、一般不支持ACID特性; 4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 | 1、无需经过sql层的解析,读写性能很高; 2、基于键值对,数据没有耦合性,容易扩展; 3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。 | 1、不提供sql支持,学习和使用成本较高; 2、无事务处理,附加功能bi和报表等支持也不好; |
3.常见关系型数据库与非关系型数据库
关系型数据库:MySQL,SQLite,Oracle
非关系型数据库: MongoDB,Redis,HBase
4.优点及缺点
优点:由于Redis是将数据存放到内存中,而内存的存储速度都比硬盘要快,所以Redis被广泛运用在互联网项目中。
缺点:对持久化支持不够良好。(所谓持久化就是把数据从内存中保存到硬盘上)。
5.Redis应用领域
(1)缓存(数据查询、短连接、新闻内容、商品内容等等)。
(2)分布式集群架构中的session分离。
(3)聊天室的在线好友列表。
(4)任务队列。(秒杀、抢购、12306等等)
(5)应用排行榜。
(6)网站访问统计。
(7)数据过期处理(可以精确到毫秒)