1.NOSQL概述
1.1什么是NOSQL
1.1.1概念
NoSQL:Not Only SQL 不仅仅是SQL,通常指的是非关系型的数据库。MySQL和Oracle都是属于关系型数据库。
特点 |
关系型数据库 |
非关系型数据库 |
储存介质 |
以文件的方式保存在硬盘中 |
通常只是存储在内存中,服务器关闭数据可能会部分或全部丢失 |
优点 |
数据是可以永久保存 |
存取速度非常快 |
缺点 |
以上这些限制会导致速度很慢 |
数据不能即使保存,可能会导致数据丢失 |
1.1.2非关系数据库存储什么样的数据呢?
答:数据是放在内存中,主要的目的是为了提高查询的速度,放在redis中的数据是经常要查询的数据,而且它是第二份,第一份数据还是放在mysql数据库中,相当于一个缓存。
1.2为什么需要NOSQL
随着互联网的高速崛起,网站的用户群的增加,访问量的上升,传统数据库上都开始出现了性能瓶颈,web程序不再仅仅专注在功能上,同时也在追求性能。所以NOSQL数据库应运而上,具体表现为对如下三高问题的解决:
1.2.1High Performance - 对数据库高并发读写的需求
在同一个时间点,同时有海量的用户并发访问。
往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。
如天猫的双11,从凌晨0点到2点这段时间,每秒达到上千万次的访问量。
12306春运期间,过年回家买火车抢票的时间,用户不断查询有没有剩余票。
对于普通的BBS网站,往往也存在对高并发写请求的需求,例如网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。
1.2.2Huge Storage - 对海量数据的高效率存储和访问的需求
数据库中数据量特别大,数据库表中每天产生海量的数据。
类似QQ,微信,微博,每天用户产生海量的用户动态,每天产生几千万条记录。对于关系数据库来说,在一张几亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。
1.2.3High Scalability && High Availability- 高可扩展性和高可用性的需求
关系型数据库进行扩展和升级是比较麻烦的一样事,对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。
非关系型数据库可以通过不断的添加服务器节点来实现扩展,而不需对原有的数据库进行维护。
1.3主流的NOSQL产品
Redis是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
CouchDB 是一个开源的面向文档的数据库管理系统,具有高度可伸缩性,提供了高可用性和高可靠性,CouchDB 是一个 Apache Software Foundation 开源项目。
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
2.window版的Redis安装与使用
2.1什么是Redis
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行10万个请求,读的速度是11万次/s,写的速度是8万次/s 。而MySQL大约在1000次/s左右。且Redis通过提供多种键值数据类型来适应不同场景下的存储需求。
2.2windows版Redis的安装与启动
官网提供了Linux版的Redis下载
Window版的Redis,下载地址如下:
2.3windows版Redis的安装
2.3.1window版Redis的安装
window版的安装及其简单,解压Redis压缩包完成即安装完毕,安装注意事项:
1.安装目录不要出现中文
2.目录不要太深
Redis所在的硬盘空间大于20G,会在目录产生一个8G大小文件。
2.3.2Redis的目录文件
目录或文件 |
作用 |
redis-benchmark.exe |
用于Redis的性能测试工具 |
redis-check-aof.exe |
AOF日志文件修复工具 |
redis-check-dump.exe |
RDB文件修改工具 |
redis-cli.exe |
client 命令行的客户端工具 |
redis-server.exe |
server 服务器端的启动程序 |
redis.windows.conf |
redis在window下的配置文件 |
2.3.3window版Redis的启动与关闭
启动服务器的方式:直接双击redis-server.exe文件即可
默认端口号:
关闭窗口服务器就关闭了
2.4window版Redis的使用
启动客户端的方式:双击redis-cli.exe文件,自动连接服务器,并且进入命令行窗口
直接点关闭即可,输入quit命令,不支持汉字。如果要使用汉字,要使用第三方客户端软件。或在Java中去访问。