文章目录
一、NoSQL
1.1 什么是NoSQL
NoSQL(Not Only SQL),意思是不仅仅是SQL,是一项全新的数据库理念,泛指非关系型的数据库。
1.2 为什么需要NoSQL
- 对数据库高并发读写的需求
- 对海量数据的高效率存储和访问的需求
如果使用关系型数据库,在一个拥有几亿条数据的表中进行sql查询效率是是否低下的。 - 对数据库的高可扩展性和高可用性的需求
如果使用关系型数据库,那么例如现在数据库中存储着几百万条数据,但是由于需求的变更需要修改表的结构,这显然是行不通的。
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其时大数据应用难题。
1.3 NoSQL的优点
- 易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。 - 大数据量,高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。 - 灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。 - 高可用
NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。
1.4 NoSQL数据库分类
NoSQL数据库的四大分类如下:
- 键值(key–Value)存储数据库
相关产品:Tokyo Cabinet/Tyrant、 Redis、Voldemort、 Berkeley DB
典型应用:内容缓存,主要用于处理大量数据的高访问负载
数据模型:一系列键值对
优势:快速查询
劣势:存储的数据缺少结构化 - 列存储数据库
相关产品:Cassandra, HBase,Riak
典型应用:分布式的文件系统
数据模型:以列簇式存储,将同一列数据存在一起
优势:查找速度快,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限 - 文档型数据库
相关产品:CouchDB、 MongoDB
典型应用:Web应用(与key- -Value类似, Value是结构化的)
数据模型:一系列键值对
优势:数据结构要求不严格
劣势:查询性能不高,而且缺乏统一的查询语法 - 图形(Graph)数据库
相关数据库:Neo4j、 InfoGrid、 Infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案
二、Redis
2.1 Reids简介
Redis是用C语言开发的一个开源的高性能键值对(key–value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止 Redis支持的键值数据类型有字符串类型、散列类型、列表类型、集合类型、有序集合类型。
2.2 Redis的应用场景
- 缓存(数据查询、短连接、商品内容等等)
- 聊天软件的在线好友列表
- 任务队列(秒杀、抢购、12306等等)
- 应用中的排行榜
- 网站访问统计
- 数据过期处理(可以精确到毫秒)
- 分布式集群架构中的 session分离
总的来说就是针对一些数据频繁变动的场景,如果用传统的关系型数据库就需要频繁的对表进行读写不太合理。
2.3 Reids的下载和安装
2.3.1 Reids的下载
现在官网Redis官网上没有Windows版本的Redis,需要到GitHub上下载。
地址:https://github.com/microsoftarchive/redis
进入后点击release就可以下载你需要的版本了,这里我们选择 .msi文件的安装程序,当然你想下载 .zip也是可以的。
2.3.2 Reids的安装
双击下载好的 .msi文件
——————————————————————————————————
这里勾选一下就会添加到windows服务中(这样比较方便),路径根据自己的需求更改。
——————————————————————————————————
端口保持默认,一直下一步就好
安装好之后就可以在计算机管理的服务中看到Redis正在运行了
2.4 Redis可视化根据RedisDesktopManager的安装
新版本的RedisDesktopManager是收费的,所以这里我们只能用老版本的。
链接:https://pan.baidu.com/s/1n-mld1Y0O61VopTFG_W8Vw
提取码:k9xz
下载好后双击运行即可,一直下一步安装即可。