Redis 是徹底開源免費的,遵照BSD協議,是一個高性能的key-value數據庫。程序員
一般而言目前的數據庫分類有幾種,包括 SQL/NSQL,,關係數據庫,鍵值數據庫等等 等,分類的標準也不以,Redis本質上也是一種鍵值數據庫的,但它在保持鍵值數據庫簡單快捷特色的同時,又吸取了部分關係數據庫的優勢。從而使它的位置處於關係數據庫和鍵值數 據庫之間。Redis不只能保存Strings類型的數據,還能保存Lists類型(有序)和Sets類型(無序)的數據,並且還能完成排序(SORT) 等高級功能,在實現INCR,SETNX等功能的時候,保證了其操做的原子性,除此之外,還支持主從複製等功能。數據庫
Redis 與其餘 key - value 緩存產品有如下三個特色:緩存
Redis有着更爲複雜的數據結構而且提供對他們的原子性操做,這是一個不一樣於其餘數據庫的進化路徑。Redis的數據類型都是基於基本數據結構的同時對程序員透明,無需進行額外的抽象。數據結構
Redis運行在內存中可是能夠持久化到磁盤,因此在對不一樣數據集進行高速讀寫時須要權衡內存,由於數據量不能大於硬件內存。在內存數據庫方面的另外一個優勢是,相比在磁盤上相同的複雜的數據結構,在內存中操做起來很是簡單,這樣Redis能夠作不少內部複雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,由於他們並不須要進行隨機訪問。併發
Redis用來作什麼?
一般侷限點來講,Redis也以消息隊列的形式存在,做爲內嵌的List存在,知足實時的高併發需求。而一般在一個電商類型的數據處理過程之中,有關商品,熱銷,推薦排序的隊列,一般存放在Redis之中,期間也包擴Storm對於Redis列表的讀取和更新。高併發
Redis的缺點
是數據庫容量受到物理內存的限制,不能用做海量數據的高性能讀寫,所以Redis適合的場景主要侷限在較小數據量的高性能操做和運算上。
總結: Redis受限於特定的場景,專一於特定的領域之下,速度至關之快,目前還未找到能替代使用產品。性能