一、NoSQL概述
1、什么是NoSQL
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
2、NoSQL解决的问题
(1)对数据库的高并发读写需求
(2)对海量数据的高效率存储及访问
(3)对数据库的高可扩展性和高可用性需求
3、主流的NoSQL产品
4、NoSql数据库的四大分类
(1)键值存储数据库
相关产品:Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型应用:内容缓存,主要用于处理大量数据的高访问负载
数据模型:一系列的键值对
优势:快速查询
劣势:存储的数据缺少结构化
(2)列存储数据库
相关产品:Cassandra,Hbase,Riak
典型应用:分布式文件系统
数据模型:以列簇式存储,将同一列数据存在一起
优势:查找速度块,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限
(3)文档型数据库
相关产品:CouchDB,MongoDB
典型应用:与key-value类似,value是结构化的
数据模型:一系列的键值对
优势:数据结构要求不严格
劣势:查询性能不高,而且缺乏统一查询语法
(4)图形数据库
相关数据库:Neo4j,infogrid,infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案
5、NoSql特点
在大数据存取上具备关系型数据库无法比拟的性能优势,例如:
(1)易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
(2)大数据量
高性能NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它 的无关系性,数据库的结构简单。
(3)灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的Web2.0时代尤其明显。
(4)高可用
NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra, HBase模型,通过复制模型也能实现高可用。综上所述,NoSQL的非关系特性使其成为了后Web2.0时代的宠儿,助力大型Web2.0网站的再次起飞,是一项全新的数据库革命性运动。
二、Redis概述
1、什么是Redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
三、Redis安装
1)安装redis编译的c环境,yum install gcc-c++
2)将redis-2.6.16.tar.gz上传到Linux系统中
3)解压到/usr/local下 tar -xvf redis-2.6.16.tar.gz -C /usr/local
4)进入redis-2.6.16目录 使用make命令编译redis
5)在redis-2.6.16目录中 使用make PREFIX=/usr/local/redis install命令安装 redis到/usr/local/redis中
6)拷贝redis-2.6.16中的redis.conf到安装目录redis中
7)如需远程连接redis,需配置redis端口6379在linux防火墙中开发
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
/etc/rc.d/init.d/iptables save
四、Redis启动
1、前端启动
直接运行redis-server即可,前端模式的缺点是启动后,不能对其进行其他操作,如果操作必须使用ctrl+c,同时redis-server结束,不推荐使用此方法。
2、后端启动
(1)首先需要修改redis.conf文件,将其中的daemonize 改为yes。
(2)启动时指定配置文件
./redis-server ./redis.conf
五、Redis停止
(1)查找redis的pid
ps -ef | grep redis
(2)使用kill
kill -9 pid
评论(0)