新聞中心
互聯(lián)網(wǎng)業(yè)務(wù),絕大部分場(chǎng)景,會(huì)使用緩存服務(wù)。

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、霍邱ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的霍邱網(wǎng)站制作公司
《選redis還是memcache,源碼怎么說?》
《memcache內(nèi)核的知識(shí)點(diǎn),值得收藏》
但有時(shí)候,確實(shí)會(huì)使用到進(jìn)程內(nèi)存緩存/數(shù)據(jù)庫,這個(gè)時(shí)候,LevelDB就能派上用場(chǎng)了。
啥是LevelDB?
LevelDB是Google開發(fā)的,一個(gè)速度非常塊的KV存儲(chǔ)庫(storage library),它支持字符串的key與字符串的value,并且這種映射關(guān)系按key排序(ordered mapping)。
LevelDB有什么特點(diǎn)?
(1)key和value可以是字符串或者字節(jié)流;
(2)數(shù)據(jù)默認(rèn)按key排列,有序存儲(chǔ);
畫外音:調(diào)用方可以重載排序方法,以實(shí)現(xiàn)自定義排序。
(3)簡(jiǎn)單易用,基本操作只有3種:
- Put(key, value)
- Get(key)
- Delete(key)
(4)提供原子批量修改接口;
(5)支持?jǐn)?shù)據(jù)快照;
(6)支持?jǐn)?shù)據(jù)自動(dòng)壓縮;畫外音:使用的是snappy壓縮算法。
(7)開源,文檔很詳盡,Google出品很可靠;
LevelDB有什么局限?
- LevelDB不是一個(gè)SQL數(shù)據(jù)庫,沒有關(guān)系型的存儲(chǔ)模型,不支持SQL語句,不支持索引;
- 同時(shí)只能有一個(gè)進(jìn)程(當(dāng)然,這個(gè)進(jìn)程可以是多線程的)訪問一個(gè)特定的數(shù)據(jù)庫;
- LevelDB只是一個(gè)lib庫,沒有實(shí)現(xiàn)什么client-server網(wǎng)絡(luò)通訊什么的,當(dāng)然用戶可以自己將lib包裝一層,實(shí)現(xiàn)自己的server;
LevelDB的性能如何?
內(nèi)存緩存的特點(diǎn)就是快。
Google也進(jìn)行了一系列測(cè)試:測(cè)試庫共100w行記錄,每條記錄16字節(jié)的key,100字節(jié)的value,壓縮后的value大概50字節(jié)。
寫性能
- 順序?qū)懀浩骄看尾僮骱臅r(shí)1.765微秒,即支持每秒大概55w次順序?qū)懖僮?
- 順序?qū)?每次都刷盤:平均每次操作耗時(shí)268.409微妙,即支持每秒大概3700次的刷盤寫操作;
- 隨機(jī)寫:平均每次操作耗時(shí)2.460微秒,即支持每秒大概40w次隨機(jī)寫操作;
- 更新寫:平均每次操作耗時(shí)2.380微秒,性能和隨機(jī)寫差不多;
讀性能
- 隨機(jī)讀:平均每次操作耗時(shí)16.677微秒,即支持每秒大概6w次隨機(jī)讀操作;
- 順序讀:平均每次操作耗時(shí)0.476微秒,即支持每秒大概210w次順序讀操作;
- 逆序讀:平均每次操作耗時(shí)0.724微秒,即支持每秒大概130w次逆序讀操作;
上述性能都是在沒有打開“壓縮”功能下的結(jié)果,如果打開“壓縮”選項(xiàng),性能會(huì)有所提升。
畫外音:Google非常誠(chéng)實(shí)的提到,由于100w行的數(shù)據(jù)量很小,這些數(shù)據(jù)是能夠完全放入內(nèi)存。
【本文為專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】
網(wǎng)站名稱:內(nèi)存KV緩存/數(shù)據(jù)庫,可以選擇它?|1分鐘系列
本文網(wǎng)址:http://fisionsoft.com.cn/article/dpicgjj.html


咨詢
建站咨詢
