成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

谷歌這個牛逼的開源數據庫,我居然等到它上Github熱榜才發現

開發 前端
今天要和大家分享一個谷歌開源多年,但依舊扛打,最近還登上Github熱榜的kv數據庫——LevelDB。

今天要和大家分享一個谷歌開源多年,但依舊扛打,最近還登上Github熱榜的kv數據庫——LevelDB。

 

Leveldb是一個google實現的非常高效的kv數據庫,創建者是大名鼎鼎的 Jeff Dean 和 Sanjay Ghemawat,目前的版本1.2能夠支持billion級別的數據量了。在這個數量級別下還有著非常高的性能,主要歸功于它的良好的設計。

LevelDB 是單進程的服務,性能非常之高,在一臺4個Q6600的CPU機器上,每秒鐘寫數據超過40w,而隨機讀的性能每秒鐘超過10w。具有以下功能特性:

  • key和value可以是字符串或者字節流
  • 數據按key排列,有序存儲
  • 調用方可以重載排序方法,以實現自定義排序
  • 基本操作只有3種:Put(key, value)、Get(key)、Delete(key)
  • 提供原子批量修改接口
  • 支持數據快照
  • 支持向前和向后的迭代器
  • 支持數據自動壓縮,使用的是snappy壓縮算法
  • 和操作系統之間的外部交互是通過虛接口(virtual interface)來進行,這樣用戶就能定制化這些交互了

levelDB特牛,但是,再好的工具也有它的局限性,LevelDB 的局限性也很明顯:

  • 這不是一個 SQL 數據庫,它沒有關系數據模型,不支持 SQL 查詢,也不支持索引。
  • 同時只能有一個進程(可能是具有多線程的進程)訪問一個特定的數據庫。
  • 該程序庫沒有內置的 client-server 支持,有需要的用戶必須自己封裝。

LevelDB的使用方法

打開數據庫

leveldb數據庫的名稱與文件系統目錄相對應。數據庫的所有內容都存儲在此目錄中。以下示例顯示了如何打開數據庫:

  1. #include <cassert> 
  2. #include "leveldb/db.h" 
  3.  
  4. leveldb::DB* db; 
  5. leveldb::Options options; 
  6. options.create_if_missing = true
  7. leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db); 
  8. assert(status.ok()); 
  9. ... 

如果要在數據庫已經存在的情況下引發錯誤,請在leveldb::DB::Open調用之前添加以下行:

  1. options.error_if_exists = true

關閉數據庫

完成數據庫操作后,只需刪除數據庫對象。例子:

  1. ... open the db as described above ... 
  2. ... do something with db ... 
  3. delete db; 

讀寫

數據庫提供了Put,Delete和Get方法來修改/查詢數據庫。如下:

  1. std::string value; 
  2. leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value); 
  3. if (s.ok()) s = db->Put(leveldb::WriteOptions(), key2, value); 
  4. if (s.ok()) s = db->Delete(leveldb::WriteOptions(), key1); 

并發

一個數據庫同時只能被一個進程打開。leveldb 會從操作系統獲取一把鎖來防止多進程同時打開同一個數據庫。在單個進程中,同一個 leveldb::DB 對象可以被多個并發線程安全地使用,也就是說,不同的線程可以在不需要任何外部同步原語的情況下,寫入、獲取迭代器或者調用 Get(leveldb 實現會確保所需的同步)。但是其它對象,比如 Iterator 或者 WriteBatch 需要外部自己提供同步保證,如果兩個線程共享此類對象,需要使用自己的鎖進行互斥訪問。具體見對應的頭文件。

目前,leveldb已經在Github上標星 24.2K,累計標星 5.3K(Github地址:https://github.com/google/leveldb)。

 

責任編輯:趙寧寧 來源: 開源最前線
相關推薦

2023-10-10 07:19:07

Github開源庫系統

2020-07-15 15:21:06

谷歌開源機器學習

2023-04-19 08:14:24

2019-12-26 15:31:17

騰訊框架開源

2023-06-20 08:28:17

2025-04-08 08:12:26

Next.js組件ChatGPT

2021-08-05 10:46:59

GitHub代碼開發者

2020-08-20 14:50:43

谷歌工具開發者

2019-06-19 09:25:08

Web數據庫管理工具

2022-04-21 10:14:02

Yandex開源數據庫

2023-10-05 08:52:53

2025-06-27 02:29:00

AI工具GitHub

2019-09-26 14:56:18

GitHub 技術開源

2024-02-01 13:02:00

AI模型

2023-04-18 18:22:31

開源工具數據庫

2021-04-25 15:35:30

開源技術 軟件

2025-01-23 08:22:22

2021-10-20 11:12:49

工具代碼開發

2020-01-03 16:00:28

谷歌GitHub機器學習

2020-07-17 11:30:39

密鑰Github數據安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品一区二区 | 欧美在线视频一区二区 | 丁香婷婷综合激情五月色 | 久久99精品国产99久久6男男 | 亚洲精品电影网在线观看 | 黄色大片观看 | 香蕉久久a毛片 | 精品无码久久久久久国产 | 日韩国产欧美一区 | 午夜激情在线视频 | 欧日韩在线 | 国产一区二区高清在线 | 国产在线观 | 伊人国产精品 | 国产综合网站 | 免费毛片网 | www.久久.com| 欧美日韩国产综合在线 | 免费看a| 久久久噜噜噜久久中文字幕色伊伊 | 天堂中文资源在线 | 国产精品电影在线观看 | 欧洲精品一区 | 国产91在线 | 中日 | 国产亚洲一区二区三区 | 天堂资源| 中文字幕在线视频观看 | 色婷婷久久综合 | www.婷婷| 欧美亚洲国产日韩 | 91精品在线播放 | 国产一区二区在线91 | 91亚洲精华国产 | 黄色一级毛片 | 免费视频二区 | 91精品国产欧美一区二区成人 | 亚洲超碰在线观看 | 亚洲成人免费电影 | 午夜一级大片 | 污片在线观看 | 色偷偷888欧美精品久久久 |