NoSQL
概述
NoSQL(Not Only SQL),是一项全新的数据库理念,泛指非关系型数据库。
优点
- 支持灵活的数据模型
- 支持对数据库的高并发读写
- 支持对海量数据的高效率存储和访问
- 支持对数据库的高可扩展和高可用
产品
- Redis
- MongoDB
- CouchDB
- Cassandra
- riak
分类
- 键值存储数据库:Redis、Tokyo Cabinet/Tyrant、Voldemort、Berkeley DB
典型应用:内容存储,主要用于处理大量数据的高访问负载
数据模型:一系列键值对
优势:快速查询
劣势:存储的数据缺少结构化 - 列存储数据库:Cassandra、HBase、Riak
典型应用:分布式的文件系统
数据模型:以列簇式存储,将同一列数据存储在一起
优势:查找速度快,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限 - 文档型数据库:MongoDB、CouchDB
典型应用:web应用(与key-value类似,value是结构化的)
数据模型:一系列键值对
优势:数据结构要求不严格
劣势:查询性能不高,缺乏统一的查询语法 - 图形数据库:Neo4J、InfoGrid、Infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案
Redis
概述
Redis 是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值对数据类型来适应不同场景的存储需求。
支持的键值数据类型:
- 字符串类型
- 散列类型
- 列表类型
- 集合类型
- 有序集合类型
官方数据:50个并发执行10000个请求,读的速度是110000次/s,写的速度是81000次/s。
应用场景
- 聊天
- 聊天室的在线好友列表
- 任务队列
- 应用排行榜
- 网站访问统计
- 数据过期处理(可以精确到毫秒)
- 分布式集群架构中的session分离