標籤:持久化   redis   
什麼是Redis記憶體資料庫?
Redis,本質上上一個KEY-VALUE類型的記憶體資料庫,整個資料庫都載入在記憶體當中進行操作,定期通過非同步作業把資料庫資料flush到硬碟上進行儲存。因此它是純記憶體操作,Redis的效能非常出色,每秒可以處理超過10萬次讀寫操作。雖然是記憶體資料庫,但是其資料可以持久化,而且支援豐富的資料類型。
Redis支援儲存LIST列表和SET集合的資料結構,而且還支援對LIST進行各種操作,例如從LIST兩端進行PUSH和POP資料,取LIST區間,排序等等。對SET支援各種集合的並集交集操作,單個value的最大限制是1GB。
Redis主要的缺點是受到實體記憶體限制,不能用作海量資料的高效能讀寫,而且它沒有原生的可擴充機制,不具有擴充能力,要依賴用戶端來實現分布式讀寫,因此其適合的應用情境主要局限在較小資料量的高效能操作和運算上。
最佳應用情境:適用於資料變化快且資料庫大小可遇見(記憶體大小)的應用程式。
例如:股票軟體、資料分析、即時資料收集、即時通訊。
Redis屬於NoSQL範疇內,其含義為:Not only SQL,是不僅僅是SQL,是一項新的技術,隨著WEB 2. 0的到來而得到廣泛應用。理念是運用非關係的資料存放區。
索引值類型的資料庫主要使用雜湊表,這個表中有一個特定的鍵和一個指標指向特定資料。KEY/VALUE模型對於IT系統來說的優勢在於簡單、容易部署。主要特點是具有極高的並發讀寫效能。
什麼是持久化?
Redis的所有資料都儲存在記憶體中,然後不週期性通過非同步方式儲存到磁碟上(這稱為半持久化);也可以把每一次資料變化都寫入到磁碟(這稱為全持久化)。所謂持久化就是講記憶體資料轉換為硬碟資料,記憶體模型到儲存模型的轉換,或者說是瞬時狀態與持久狀態的相互轉換。
Redis有兩種持久化方式,預設是snapshot方式,實現方法是定時將記憶體的快照持久化到硬碟,這種方式的缺點是持久化之後如果出現crash則會丟失一段資料。另外一種是aof方式,在寫入記憶體資料的同時將操作命令儲存到記錄檔中。
本文出自 “小惡魔的家” 部落格,請務必保留此出處http://littledevil.blog.51cto.com/9445436/1790864
(一)初識Redis記憶體資料庫