Redis簡介
Nosql簡介
NoSQL是Not-Only-SQL的縮寫,是被設計用來替換傳統的關係型數據庫在某些領域的用,特別針對web2.0站點以及大型的SNS網站,用來滿足高併發、大數據的應用需求。
常見的NoSQL數據庫有:
- HBase(Hadoop數據庫,基於列存儲)
- MongoDB(文檔型數據庫,採用類型與JSON的BSON語法存儲記錄)
- Redis/Memcached(鍵值存儲數據庫)
Redis介紹
Redis是NoSQLogic系列數據庫中,和Memcached最爲相似的數據庫系統,同屬鍵值存儲系統。
嚴格意義上來講,Memcached並不能算作數據庫系統,只能算作中間緩存系統,因爲其並不能進行數據的持久化存儲。
Redis的字面意思是:遠程字典服務器(REmote DIctionary Server),和Memcached相比較,提供了更加豐富的數據類型微笑,更被認爲是一種數據結構服器。
Redis VS memcached
和Memcached相比,Redis的優勢十分明顯
- 數據類型:Redis支持更豐富的數據類型,包括字符串(string)、列表(list:可用作隊列、堆棧)、集合(set:可以進行集合的運算)、有序集合(sorted set)、哈希表(hash)等,而Memcached僅支持字符串。
- 對象大小:Redis支持的對象大小最大支持1GB,而Memcached僅爲1MB,僅從這個角度來講,就很有使用Redis替換Memcached的必要.
分片(Sharding):可以將數據離散地存儲在不同的物理機器上,以克服單臺機器的內存大小限制。Memcached是在服務器實現實現分片的,而Redis需要藉助於Jedis實現客戶端分片,Jedis是Redis官方推薦的使用Java訪問Redis的方式。
使用Jedis的分片機制,存儲一批數據,在不同的Redis服務器上存儲着這批數據的不同部分.而這對客戶端來說,而完全透明的,看不到這種差別。另外需要注意,使用Spring Data Redis進行客戶端操作時,不提供對分片支持。
持久化:Redis能夠將添加到內存中的數據持久化到磁盤,而Memcached則只能充當一個功能相對有限的緩存中間件角色。
應用場景
- 數據庫服務器:用來存儲結構相對簡單的的數據。
- 緩存系統:緩存需要大量讀取、少量修改的數據。
- 構建實時消息系統:利用發佈(Pub)/訂閱(Sub)特性。
- 對隊列的支持:基於列表(list)實現隊列(queue)、堆棧(stack)。
Redis環境搭建
MAC環境
Redis下載
到官網上下載redis,官網地址:http://redis.io/
解壓Redis
拷貝到指定目錄,執行解壓命令:tar xzf redis-3.0.7.tar.gz
編譯安裝
make
make install
執行完,基本安裝完了,配置都採用默認配置。
啓動Redis
cd 到redis解壓目錄下,執行src/redis-server,回車即啓動