NoSQL:一类新出现的数据库、(not only sql)。它的特点:
- 不支持sql
- 存储子结构跟传统关系型数据库的表关系完全不同。nosql中存储的数据都是K-V形式
- NoSql的世界中没有一种通用的语言,每种no-sql数据库都有自己的api和语法,以及擅长的业务场景。
- NoSQL的产品种类相当多:MongoDB、Redis、HBASE Hadoop、Cassandma Hadoop...
NoSQL和SQL数据库的比较:
- 适用场景不同:sql数据库适用于关系特别复杂的数据查询场景,nosql反之;
- “事务"特性的支持;sql对事务的支持非常完善,而nosql基本上不支持事务。事务(一组sql操作,要么都成功、要么都失败)
- 两者在不断的取长补短,呈现融合趋势。
Redis简介
- Redis是一个开源的使用ANSI C语言编写、支持网络、可以基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发工作由Pivote赞助。
- Redis是NoSQ技术阵营的议员,它通过多种键值数据类型来适应不同业务场景下的存储需求,借助一些高级的接口时期可以胜任如缓存、队列系统的不同角色。
Redis特性
Redis与其他Key-Value缓存产品有以下三个特点:
- redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用。
- redis不仅仅支持简单的Key-Value类型的数据,同时还提供list、set、zset、hash等数据结构的数据。
- redis支持数据的备份,即master-slave模式的备份
Redis优势
- 性能极高-Redis能读的速度是110000次/s,写的速度是81000次/s;
- 丰富的数据类型-Redis支持的二进制案例的String、List、Hash、Set及Order Set数据类型的操作;
- 原子-Redis的所有操作都是原子的,同时Redis还支持对几个操作全并后的原子性操作
Redis应用场景
- 用来做缓存(ehcache/memcached)--redis的所有数据都是放在内存中的(内存数据库);
- 可以在某些特定应用场景下替代传统数据库--比如社交类的应用;
- 在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车....