說明:redis 是乙個高效能的key-value資料庫。
redis的出現,很大程度補償了memcached這類keyvalue儲存的不足,在部 分場合可以對關聯式資料庫起到很好的補充作用。
它提供了python,ruby,erlang,php客戶端,使用很方便。問題是這個專案還很新,可能還不足夠穩定,而且沒有在實際的一些大型系統應用的例項。
此外,缺乏mc中批量get也是比較大的問題,始終批量獲取跟多次獲取的網路開銷是不一樣的。
效能測試結果:
set操作每秒鐘 110000 次,get操作每秒鐘 81000 次
資料庫主要型別有物件資料庫,關聯式資料庫,鍵值資料庫等等,物件資料庫太超前了,現階段不提也罷;關聯式資料庫就是平常說的mysql,postgresql這些熟的不能再熟的東西,至於鍵值資料庫則是本文要著重說的,其代表主要有memcachedb,tokyo cabinet等等。
redis本質上也是一種鍵值資料庫的,但它在保持鍵值資料庫簡單快捷特點的同時,又吸收了部分關聯式資料庫的優點。從而使它的位置處於關聯式資料庫和鍵值資料庫之間。redis不僅能儲存strings型別的資料,還能儲存lists型別(有序)和sets型別(無序)的資料,而且還能完成排序(sort)等高階功能,在實現incr,setnx等功能的時候,保證了其操作的原子性,除此以外,還支援主從複製等功能。
詳細描述參見官方手冊,同時,官方提供了乙個名為retwis的專案的源**,可以對照著官方介紹學習,注意其中關於data layout的描述,其他沒什麼。
專案實踐中,多以關聯式資料庫為主,不過合理的使用redis這樣的鍵值資料庫,往往能揚長避短,比如說實現乙個類似訊息佇列的功能,對mysql來說,除非使用q4m,否則很難滿足高併發請求,不過對redis來說,通過內建的lists支援,訊息佇列就是小菜一碟。
redis的安裝
超高效能 key value 資料庫 Redis
redis是乙個高效能的key value資料庫。redis的出現,很大程度補償了memcached這類keyvalue儲存的不足,在部 分場合可以對關聯式資料庫起到很好的補充作用。它提供了python,ruby,erlang,php客戶端,使用很方便。前幾天微博發生了一起大的系統故障,很多技術的朋...
C 跟Lua如何超高效能傳遞資料
在uwa學堂上線那天,我買了招文勇這篇lua互動的課程,19塊還算值,但是前段時間太忙,一直沒空研究,他的demo是基於xlua的,今天終於花了大半天時間在tolua下跑起來了,記錄一下我的理解 lua跟c 互動的效能問題是老生常談的了,c 跟lua資料互動是通過lua虛擬棧,進行壓棧 出棧來傳遞的...
C 跟Lua如何超高效能傳遞資料
在uwa學堂上線那天,我買了招文勇這篇lua互動的課程,但是前段時間太忙,一直沒空研究,他的demo是基於xlua的,今天終於花了大半天時間在tolua下跑起來了,記錄一下我的理解 lua跟c 互動的效能問題是老生常談的了,c 跟lua資料互動是通過lua虛擬棧,進行壓棧 出棧來傳遞的,一次呼叫就需...