1、Redis介紹:redis
redis的發展歷史簡單的理解爲由於使用相似MySql這類關係型數據庫不方便進而開發的開源的、輕量級的、非關係型的,直到如今一直不斷完善的一款NoSql數據庫。具體的介紹你們能夠上網搜一下,這裏就不作介紹了。數據庫
一、特性:緩存
1.1存儲結構服務器
redis以字典結構存儲數據,通俗的講是以key=value(鍵值對)的形式存儲的,並容許其餘應用經過TCP協議讀取字典中的內容。多線程
目前redis支持的數據類型有:字符串類型(string);散列類型(hash);列表類型(list);集合類型(set);有序集合類型(zset)。memcached
這種存儲結構的優點:性能
在關係型數據庫中,不一樣的數據須要放在不一樣的表中,有特定須要的話須要進行多表連查。而對於redis這樣以鍵值的形式存儲的數據而言,能夠對鍵進行差集、交集、並集的操做,方便不少。spa
1.2內存存儲與持久化線程
redis數據庫中全部的數據都存在內存中。因爲內存的讀寫速度遠快於硬盤,所以,redis在性能上遠超於那些讀取到磁盤上的數據庫,在一臺普通的筆記本電腦上,redis能夠在一秒內讀寫超過十萬個鍵值。code
將數據存儲到內存中也是有隱患的,例如程序忽然退出後內存中的數據就沒了。不過,redis提供了持久化的支持,經過RDB方式或者AOF方式將內存數據持久化到磁盤上,兩種方式後面總結。
1.3功能豐富
redis雖然是做數據庫開發的,可是不少用作緩存和隊列使用的。
redis中能夠設置鍵的生存時間,生存時間到期後就會自動刪除。這一功能能夠做爲緩存來使用。redis是單線程模式,而memcached支持多線程,在多核服務器上memcached性能更高。做爲緩存系統,redis還能夠限定數據佔用的空間大小,超出空間限制後按照必定的規則刪除沒必要要的鍵。
除此以外,redis的列表類型鍵能夠用來實現隊列,能夠支持阻塞式讀取,能夠很容易實現一個高性能的優先級隊列。更高層次上,redis還支持「訂閱/發佈」的消息模式,能夠基於此來構建聊天室等系統。
1.4簡單穩定
再強大的功能使用起來很複雜一樣不會很吸引人,然而redis使用起來也至關的方便簡單。
例如:在常規的關係型數據庫中想要獲取user表的usercode爲3的username字段數據時使用SQL語句:select username from user where usercode = 3;
然而在redis中是以鍵值對的形式存儲的,咱們只須要按鍵取值便可:HGET user:3 username
注:此筆記僅根據本人理解所寫,若有錯誤之處,還請留言指正,謝謝。