1. 程式人生 > >redis,mysql,memcache的區別與比較,redis兩種資料儲存持久化方式

redis,mysql,memcache的區別與比較,redis兩種資料儲存持久化方式

redis與mysql比較
區別:mysql中一箇中小型的網路資料庫,比oracle和sqlserver小, 但是併發能力遠超過acess這樣的桌面資料庫;redis是一個記憶體鍵值資料庫,支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫。redis比mysql簡化很多。
聯絡:mysql支援叢集。現在大量的軟體使用redis作為mysql在本地的資料庫快取,然後再適當的時候和mysql同步。

redis和memcache的比較
1、效能上:沒有必要過於關注效能,因為二者的效能都已經足夠高了。由於Redis只使用單核,而Memcached可以使用多核,所以二者比較起來,平均每一個核上,Redis在儲存小資料時比Memcached效能更高。而在100k以上的資料中,Memcached效能要高於Redis。雖然Redis最近也在儲存大資料的效能上進行優化,但是比起Memcached,還是稍有遜色。說了這麼多,結論是,無論你使用哪一個,每秒處理請求的次數都不會成為瓶頸。
2、 記憶體使用率上:如果使用簡單的key-value儲存,Memcached的記憶體利用率更高。而如果Redis採用hash結構來做key-value儲存,由於其組合式的壓縮,其記憶體利用率會高於Memcached。當然,這和你的應用場景和資料特性有關。如果你對資料持久化和資料同步有所要求,那麼推薦你選擇Redis。因為這兩個特性Memcached都不具備。即使你只是希望在升級或者重啟系統後快取資料不會丟失,選擇Redis也是明智的。
3、應用需求上:Redis相比Memcached來說,擁有更多的資料結構,並支援更豐富的資料操作。通常在Memcached裡,你需要將資料拿到客戶端來進行類似的修改再set回去。這大大增加了網路IO的次數和資料體積。在Redis中,這些複雜的操作通常和一般的GET/SET一樣高效。所以,如果你需要快取能夠支援更復雜的結構和操作,那麼Redis會是不錯的選擇。
總之,redis和memcahe都支援key-value儲存,但用redis,可使資料持久化,且redis支援的資料型別豐富

redis兩種資料儲存持久化方式
1、Snapshotting即快照方式:在一定間隔時間做一次的,所以如果redis意外down掉的話,就會丟失最後一次快照後的所有修改。
2、aof方式是以日誌的方式來儲存資料,即它將記錄每次對於redis的操作,每一次操作都有一條相應的記錄,因此aof方式產生的檔案比snapshot方式要大。