Redis 是一個高效能的key-value資料庫。 redis的出現,很大程度補償了memcached這類key/value儲存的不足,在部 分場合可以對關係資料庫起到很好的補充作用。它提供了Java,C/C ,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。
redis的崛起絕非偶然,它確實有自己的新東西在裡面,它不像Memcached,只能將資料儲存在記憶體中,它提供了持久化機制和資料同步,避免了宕機後的雪崩的問題,即伺服器出現問題後,記憶體中保留的原始資料全部遺失,需要重新組織資料到內存,這時,Memcached會經歷一個很慢的過程。
Redis支援持久化只是它的一件武器,另外,Redis針對不同的需求也提供了多達5種資料儲存方式,以最大效率上的實現你的需求,下面介紹一下這幾種資料類型:
一 string(字串)
string是最簡單的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value,其上支援的操作與Memcached的操作類似。但它的功能更豐富。
二 list(雙向鍊錶)
list是個鍊錶結構,主要功能是push、pop、取得一個範圍的所有值等等。之所以說它是雙向的,因為它可以在鍊錶左,右兩邊分別運算
#三 dict(hash表)
set是集合,和我們數學中的集合概念相似,對集合的運算有新增刪除元素,有對多個集合求交並差等運算。操作中key理解為集合的名字
四 zset(排序set)
zset是set的升級版本,他在set的基礎上增加了一個順序屬性,此屬性在新增修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。可以對指定鍵的值進行排序權重的設定,它應用排名模組比較多
五 Hash類型
Redis能夠儲存key對多個屬性的數據(例如user1.uname user1.passwd),當然,你完成可以把這些屬性以json格式進行存儲,直接把它當作string類型進行操作,但這樣性能上是對影響的,所以redis提出的Hash類型。
以上是Redis支援哪幾種資料結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!