一、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
