Redis簡介
一、什么是redis
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、 set(集合)和zset(有序集合)、Hash(哈希類型的映射表)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。 Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部 分場合可以對關系數據庫起到很好的補充作用。它提供了Java,Python,Ruby,Perl,PHP客戶端,使用很方便。
二、redis的特性
1、支持數據類型多樣
作為Key-value型數據庫,Redis也提供了鍵(Key)和鍵值(Value)的映射關系。但是,除了常規的數值或字符串,Redis的鍵值還可以是以下形式之一:
●Lists (列表)
●Sets (集合)
●Sorted sets (有序集合)
●Hashes (哈希表)
鍵值的數據類型決定了該鍵值支持的操作。Redis支持諸如列表、集合或有序集合的交集、并集、查集等高級原子操作;同時,如果鍵值的類型是普通數字,Redis則提供自增等原子操作。
2、持久化
通常,Redis將數據存儲于內存中,或被配置為使用虛擬內存。通過兩種方式可以實現數據持久化:使用截圖的方式,將內存中的數據不斷寫入磁盤;或使用類似MySQL的日志方式,記錄每次更新的日志。前者性能較高,但是可能會引起一定程度的數據丟失;后者相反。
3、主從同步
Redis支持將數據同步到多臺從庫上,這種特性對提高讀取性能非常有益。
4、性能
相比需要依賴磁盤記錄每個更新的數據庫,基于內存的特性無疑給Redis帶來了非常優秀的性能。比傳統的數據庫在讀、寫操作之間有顯著的性能差異,下面是官方的bench-mark數據:
5、提供多語言支持
Java,C/C++,Python,Ruby,Objective-c,C#,Php,Javascript,perl等。</span>