在了解Redis前我们先来了解NoSQL(非关系型数据库)
NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。?
分类 | Examples举例 | 典型应用场景 | 数据模型 | 优点 | 缺点 |
---|---|---|---|---|---|
键值(key-value) | Tokyo、Redis、Oracle、BDB、Cabinet/Tyrant、Voldemort | 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等 | Key指向Value的键值对,通常用hash table来实现 | 查找速度快 | 数据无优化,通常只被当做字符串或者二进制数据 |
列存储数据库 | Cassandra,HBase,Riak | 分布式的文件系统 | 以列式存储,将同一列数据存储在一起 | 查找速度快,可扩展性强,更容易进行分布式扩展 | 功能相对局限 |
文档型数据库 | CouchDB、MongoDB | Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) | Key-Value对应的键值对,Value为结构化数据 | 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先预定表结构 | 查询性能不高,而且缺乏统一的查询语法 |
图形(Graph)数据库 | Neo4J、InfoGnd | 社交网络,推荐系统等,专注于构建关系图谱 | 图结构 | 利用图结构相关算法。比如最短路径寻址,N度关系查找等 | 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案 |
Redis(全称为Remote Dictionary Server)是一个开源的高性能键值对(key-value)存储系统,具有快速、灵活和可扩展的特性。它是一个基于内存的数据结构存储系统,可以用作数据库、缓存和消息代理。
Redis定位是缓存,提高数据读写能力,减轻对数据存储与访问压力