# Reds簡介
一個開源的key-vole,內存中的數據結構存儲系統,它可以用作數據庫、緩存和消息中間件。它支持多種類型的數
據結構,如字符串( stings),散列( hashes),列表(lsts),集合(sets),有序集合( sorted sets)。 Redis使用C語言開發,支持的客戶端語言也非常豐富,如C、C#、C++、 object-c、PHP、 Python、Java等。 Redis支持master-slave(主-從)模式應用,支持數據的持久化,可以將內存中的數據存儲在硬盤中,重啟、斷電的時候并不會
丟失數據。
## Redis特點
①所有數據存儲在內存中,高速讀寫
②提供豐富多樣的數據類型: stnng、ist、hash、set、 sorted set、bimp
③提供了AOF和RDB兩種數據的持久化保存方式,保證了Rcds重啟后數據不丟失
④ Redis的所有操作都是原子盞的,還支持對幾個操作合并后的原子性操作,支持事務
通常我們都把數據存到關系型數據庫中,但為了提升應用的性能,我們應該把訪頻率高且不會經常變動的數據緩存到內存中。Redis沒有像 MYSQL這類關系型數據庫郊樣強大的查詢功能,需要考慮如何把關系型數據庫中的數據,合理的對應到緩存的 key value款據結柳中
:-: **Redis應用邏輯圖**
:-: 
## Redis與其他key-value存儲有什么不同?
Redis有著更為復雜的數據結構并且提供對他們的原子性操作,這是一個不同于其他數據庫的進化路徑。Redis的數據類型都是基于基本數據結構的同時對程序員透明,無需進行額外的抽象。
Redis運行在內存中但是可以持久化到磁盤,所以在對不同數據集進行高速讀寫時需要權衡內存,因為數據量不能大于硬件內存。在內存數據庫方面的另一個優點是,相比在磁盤上相同的復雜的數據結構,在內存中操作起來非常簡單,這樣Redis可以做很多內部復雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,因為他們并不需要進行隨機訪問。