目录
1.2.1High Performance - 对数据库高并发读写的需求
1.2.2Huge Storage - 对海量数据的高效率存储和访问的需求
1.2.3High Scalability && High Availability- 高可扩展性和高可用性的需求
NoSQL:Not Only SQL 不仅仅是SQL,通常指的是非关系型的数据库。MySQL和Oracle都是属于关系型数据库。
特点 | 关系型数据库 | 非关系型数据库 |
---|---|---|
存储介质 | 以文件的方式保存在硬盘中 | 通常只是存储在内存中,服务器关闭数据可能会部分或全部丢失 |
优点 | 数据是可以永久保存 | 存取速度非常快 |
缺点 | 数据添加有校验的过程查询的速度比较慢DML的操作需要使用到事务以上这些限制会导致速度很慢 | 数据不能即使保存,可能会导致数据丢失 |
以上这些限制会导致速度很慢 数据不能即使保存,可能会导致数据丢失
随着互联网的高速崛起,网站的用户群的增加,访问量的上升,传统数据库上都开始出现了性能瓶颈,web程序不再仅仅专注在功能上,同时也在追求性能。所以NOSQL数据库应运而上,具体表现为对如下三高问题的解决:
在同一个时间点,同时有海量的用户并发访问。
往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。
数据库中数据量特别大,数据库表中每天产生海量的数据。
类似QQ,微信,微博,每天用户产生海量的用户动态,每天产生几千万条记录。对于关系数据库来说,在一张几亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。
关系型数据库进行扩展和升级是比较麻烦的一样事,对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。
非关系型数据库可以通过不断的添加服务器节点来实现扩展,而不需对原有的数据库进行维护。
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行10万个请求,读的速度是11万次/s,写的速度是8万次/s 。而MySQL大约在1000次/s左右。且Redis通过提供多种键值数据类型来适应不同场景下的存储需求。
官网提供了Linux版的Redis下载
http://redis.io/download
Window版的Redis,下载地址如下:
https://github.com/MSOpenTech/redis/tags
window版的安装及其简单,解压Redis压缩包完成即安装完毕,安装注意事项:
Redis所在的硬盘空间大于20G,会在目录产生一个8G大小文件。
目录或文件 | 作用 |
---|---|
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下的配置文件 |
启动服务器的方式:直接双击redis-server.exe文件即可
默认端口号:
关闭窗口服务器就关闭了
启动客户端的方式:双击redis-cli.exe文件,自动连接服务器,并且进入命令行窗口
直接点关闭即可,输入quit命令,不支持汉字。如果要使用汉字,要使用第三方客户端软件。或在Java中去访问。