redis系列(一):redis基础介绍

一、NoSQL介绍

NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。由于传统的关系型数据库在对

  • 对海量数据的高效率存储和访问的需求
  • 对数据库的高可扩展性和高可用性的需求
  • 对海量数据的高效率存储和访问的需求

等方面无法满足现存的业务需要,所以才导致关系型数据库的快速发展。

二、NoSQL的分类

1. 键值(Key-Value)存储数据库

相关产品:Redis,Voldemort,Oracle BDB
典型应用:内容缓存,主要用于处理大量数据的高访问负载。
技术原理:这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据
优势:优势是能够快速查询
劣势:存储的数据缺少结构化。
数据模型:一系列的键值对

2. 列存储数据库

相关产品: HBase, Riak

典型应用:分布式的文件系统,存储海量数据

数据模型:以列簇式存储,将同一列数据存在一起

优势:查找速度快,可扩展性强,更容易进行分布式扩展

劣势:功能相对局限

技术原理:这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。

3. 文档型数据库

相关产品:CouchDB、MongoDB

典型应用:Web应用(与Key-Value类似,Value是结构化的)

数据模型: 一系列键值对

优势:数据结构要求不严,允许之间嵌套键值,比键值数据库的查询效率更高

劣势: 查询性能不高,而且缺乏统一的查询语法

技术原理:该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版。

4. 图形(Graph)数据库

相关数据库:Neo4J、InfoGrid、Infinite Graph

典型应用:社交网络

数据模型:图结构,它是使用灵活的图形模型,并且能够扩展到多个服务器上

优势:利用图结构相关算法。

劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

技术原理:图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。

总结 :非关系型数据库的特点
  • 数据模型比较简单;
  • 需要灵活性更强的IT系统对数据库性能要求较高;
  • 不需要高度的数据一致性
  • 对于给定key,比较容易映射复杂值的环境

三、redis简介

  • Redis是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
1. redis特性

有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份
2. redis与常用的其他数据库的对比

redis db0 db2啥区别 redis中db是什么意思_redis

3. redis的优缺点

优点:

  • 对数据高并发读写
  • 对海量数据的高效率存储和访问
  • 对数据的可扩展性和高可用性

缺点:

  • redis(ACID处理非常简单)
  • 无法做到太复杂的关系数据库模型