LokiJS:性能優先的 JavaScript 內存數據庫

LokiJS 是純 JavaScript 實現的內存數據庫,面向文檔,支持 Node.js,瀏覽器和 Cordova。LokiJS 堅持的信條就是性能永遠是第一考慮因素。node

LokiJS:性能優先的 JavaScript 內存數據庫

LokiJS 是:git

  • 瀏覽器的 NoSQL 數據庫,包括同步和持久化特性github

  • 一個 Redis 類型的 npm 安裝方式存儲 store an npm install awayweb

  • Cordova 的持久化 NoSQL 數據庫數據庫

  • 可嵌入的 NoSQL 數據庫,支持 node-webkit 持久化存儲npm

LokiJS 理想的應用場景:json

  1. 客戶端內存數據庫,好比 session 存儲瀏覽器

  2. 性能優先的應用緩存

  3. cordova/phonegap 移動應用,利用 JavaScript 的特性來避免與原生數據庫的交互服務器

  4. 瀏覽器頁面加載的數據集

  5. node-webkit 桌面應用

LokiJS 支持索引和視圖,經過維護數據的惟一和二次索引來達到高性能。

LokiJS 支持集合,跟 MongoDB 很像,將數據以 JSON 的格式保存,數據可移植。

LokiJS 的主要特性:

  1. 超高性能的 NoSQL 內存數據庫,惟一索引 (1.1M ops/s) 和二次索引 (500k ops/s) 集合

  2. 能夠在多種環境下運行

  3. 提供快速訪問數據子集的動態視圖

  4. 內置持久性適配器,支持用戶定義

  5. API 修改

  6. Joins

LokiJS 當前是 1.3.16 版本,計劃將來加入如下特性:

  • 精確搜索(exactIndex)

  • 鍵值存儲(key-value)

  • MRU 緩存

  • MongoDB API 兼容

  • 獨立服務器 (tcp 和 http 服務器和客戶端)

  • 複製和橫向擴展

LokiJS 遵循 MIT 開源受權協議,但也提供商業支持,請看 Demo:Sandbox / Playground。

安裝:

npm install lokijs

或者

bower install lokijs

使用

建立數據庫:

var db = new loki('loki.json')

經過文件名保存數據

建立集合:

var children = db.addCollection('children')

插入文檔:

children.insert({name:'Sleipnir', legs: 8})

children.insert({name:'Jormungandr', legs: 0})

children.insert({name:'Hel', legs: 2})

檢索文檔:

children.get(1); // returns Sleipnir

children.find( {'name':'Sleipnir'} )

children.find( { legs: { '$gt' : 2 } } )

建立動態視圖:

var legs = children.addDynamicView('legs');

legs.applyFind( { legs: { '$gt' : 2 } )

legs.applySimpleSort('legs');

legs.data();

MapReduce:

children.mapReduce(

function( obj ){ return obj.legs; } ,

function( array ) {

var sum = 0;

for (var i=0; i < array.length; i++ ){

sum += array[i];

}

return ( sum / array.length ).toFixed(2);

});

GitHub 地址:https://github.com/techfort/LokiJS

相關文章
相關標籤/搜索