2013年1月19日 星期六

[Redis] 所謂的資料結構伺服器

Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
前言

Redis簡介裡,開宗明義就闡述了上面那段引言。也就是所謂的資料結構伺服器,這句話說實在的,若非真正開始動手進行以Redis為基礎的專案,還真的不知道這句話描述的有多麼貼切。


Value

Redis ,我們知道是一種key-value型態的資料庫,關於Key的部份需要注意或開發的技巧與其他NoSQL KV型態的資料庫並沒有太大的差異,但是Value部份就是整個Redis的經隨了。

變數型態

解釋Redis的資料結構之前,讓我們先回想一下,過去撰寫程式的時候,不論使用的是哪種語言,最最最基本的都是要先了解該語言究竟有哪些變數型態(type)可以使用,常見的整數(Int),浮點數(float),陣列(array),雜湊(hash)等等,不同的資料型態有著不同的操作方式。比如說:PHP中的陣列(array),就可以使用array_push()來添加元素,諸如此類。

複雜度(Big O)

Redis的value有許多種資料結構,而這"資料結構"就好比程式語言的"變數型態",包含一般字串、雜湊表、list結構、一般資料集與可排序資料集,更重要的是每種資料結構都有相應的API可以進行操作,我們知道Redis是在記憶體(ram)內運作,不同的資料結構可以有不同的位址配置,提供的API正是最佳化過得存取演算,證據就是官網中,每種API都有附帶運算複雜度(Big O)。換句話說,使用適當的Redis資料結構,可以更優化系統整體的讀寫速度

結論

使用Redis作為專案的存取資料庫,一定要先行研究過各種資料結構,才可以針對專案的資料特性給予最適合的儲存方式喔。

沒有留言:

張貼留言