NOSQL介绍
NOSQL: 是说一大类新出现的数据库,它的特点:
1、 不支持SQL语法
2、 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式
3、 NOSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
4、 NOSQL中的产品种类相当多:
a) Mongodb 文档型nosql数据库,擅长做CMS系统(内容管理系统)
b) Redis 数据结构服务器,像一把瑞士军刀,只要你有足够的想象力,它可以发挥你想象到的作用
c) Hbase hadoop生态系统中原生的一种nosql数据库,重量级的分布式nosql数据库,用于海量数据的场景
d) Cassandra hadoop生态系统中原生的一种分布式nosql数据库,后起之秀
。。。。。。
NOSQL和SQL数据库的比较:
1、适用场景不同:sql数据库适合用于关系特别复杂的数据查询场景,nosql反之
2、事务特性的支持:sql对事务的支持非常完善,而nosql基本不支持事务
3、两者在不断地取长补短,呈现融合趋势
1.传统的关系型数据库存储的结构
每一行的都是一条记录record
2.什么是redis
Redis是一个高性能的kv缓存和数据库
Redis的存储结构就是kv,形式如下:
注: redis中的value内部可以支持各种数据结构类型,比如可以存入一个普通的string,还可以存list,set,hashmap,sortedSet(有序的set)
3.redis应用场景
注:微博系统就是采用redis实现的
A、用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
B、可以在某些特定应用场景下替代传统数据库
C、在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车
只要你有丰富的想象力,redis可以用在各种官网说明上没有提到的场景。。。。。
4.redis的特性
A、redis数据访问速度快(数据在内存中)
B、redis的数据有持久化(持久化机制有两种:1、定期将内存数据dump到磁盘;2、aof持久化机制——用记日志的方式记录每一条数据更新操作,一旦出现灾难事件,可以通过日志重放来恢复整个数据库)
C、redis还支持集群模式(容量可以线性扩展)
D、redis相比其他缓存工具(ehcach/memcached),有一个鲜明的优势:支持丰富的数据结构