標籤:到期 class 資料壓縮 pat 功能 開始 執行 支援 設計
NoSQL:一類新出現的資料庫(not only sql)
- 泛指非關係型的資料庫
- 不支援SQL文法
- 儲存結構跟傳統關係型資料庫中的那種關係表完全不同,nosql中儲存的資料都是KV形式
- NoSQL的世界中沒有一種通用的語言,每種nosql資料庫都有自己的api和文法,以及擅長的業務情境
- NoSQL中的產品種類相當多:
- Mongodb
- Redis
- Hbase hadoop
- Cassandra hadoop
NoSQL和SQL資料庫的比較:
- 適用情境不同:sql資料庫適合用於關係特別複雜的資料查詢情境,nosql反之
- “事務”特性的支援:sql對事務的支援非常完善,而nosql基本不支援事務
- 兩者在不斷地取長補短,呈現融合趨勢
Redis簡介
- Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。
- Redis是 NoSQL技術陣營中的一員,它通過多種索引值資料類型來適應不同情境下的儲存需求,藉助一些高層級的介面使用其可以勝任,如緩衝、隊列系統的不同角色
Redis特性
- Redis 與其他 key - value 緩衝產品有以下三個特點:
- Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。
- Redis不僅僅支援簡單的key-value類型的資料,同時還提供list,set,zset,hash等資料結構的儲存。
- Redis支援資料的備份,即master-slave模式的資料備份。
- Redis 優勢
Redis 優勢
- 效能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
- 豐富的資料類型 – Redis支援二進位案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 資料類型操作。
- 原子 – Redis的所有操作都是原子性的,同時Redis還支援對幾個操作全並後的原子性執行。
- 豐富的特性 – Redis還支援 publish/subscribe, 通知, key 到期等等特性。
Redis應用情境
- 用來做緩衝(ehcache/memcached)——redis的所有資料是放在記憶體中的(記憶體資料庫)
- 可以在某些特定應用情境下替代傳統資料庫——比如社交類的應用
- 在一些大型系統中,巧妙地實現一些特定的功能:session共用、購物車
- 只要你有豐富的想象力,redis可以用在可以給你無限的驚喜…….
| 類型 |
部分代表 |
特點 |
| 列儲存 |
Hbase Cassandra Hypertable |
顧名思義,是按列儲存資料的。最大的特點是方便儲存結構化和半結構化資料,方便做資料壓縮,對針對某一列或者某幾列的查詢有非常大的IO優勢。 |
文檔儲存 |
MongoDB CouchDB |
文檔儲存一般用類似json的格式儲存,儲存的內容是文檔型的。這樣也就有有機會對某些欄位建立索引,實現關聯式資料庫的某些功能。 |
key-value儲存 |
Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis |
可以通過key快速查詢到其value。一般來說,儲存不管value的格式,照單全收。(Redis包含了其他功能) |
圖儲存 |
Neo4J FlockDB |
圖形關係的最佳儲存。使用傳統關聯式資料庫來解決的話效能低下,而且設計使用不方便。 |
Object Storage Service |
db4o Versant |
通過類似物件導向語言的文法操作資料庫,通過對象的方式存取資料。 |
xml資料庫 |
Berkeley DB XML BaseX |
高效的儲存XML資料,並支援XML的內部查詢文法,比如XQuery,Xpath。 |
redis資料庫的簡單介紹