讓你能夠在 JavaScript 中對你的應用數據進行存儲和操做。javascript
MinDB 提供一個標準的存儲接口(Store Interface
)和 Redis 風格的 API,你能夠在任何 JavaScript 環境中使用。java
它在 Github 上的項目主頁是:https://github.com/iwillwen/mindb
據項目做者的微博資料, 他是廣州石門中學的高中生,1996年出生。(編輯不得不注:後生可畏!!)node
普通script
標籤引入:git
<script style="text/javascript" src="/path/to/script/min.js">
$ npm install min
若是你正在使用 SeaJS,你能夠經過 spm 進行安裝:redis
$ spm install iwillwen/min
若是你喜歡 component,你也能夠使用它進行安裝:數據庫
$ component install iwillwen/mindb
或者 bower?:npm
$ bower install mindb
基本的鍵值存儲能夠經過SET
、GET
等命令操做:segmentfault
min.set('foo', 'bar', function(err) { if (err) { return console.error(err); } min.get('foo', function(err, value) { if (err) { return console.error(err); } console.log(value); //=> bar }); });
set
對指定鍵設置數據 (key, value[, callback])
setnx
當指定鍵不存在時,對其設置數據 (key, value[, callback])
setex
對指定鍵設置數據,並設置生命週期 (key, seconds, value[, callback])
psetex
對指定鍵設置數據,並設置以毫秒爲單位的生命週期 (key, millseconds, value[, callback])
mset
批量對指定鍵設置數據 (plainObject[, callback])
msetnx
當一批指定鍵所有不存在時,批量對其設置數據 (plainObject[, callback])
append
在指定鍵後插入值 (key, value[, callback])
get
獲取指定鍵的值 (key[, callback])
mget
批量獲取指定鍵的值 (keys[, callback])
getset
對指定鍵設置數據並返回其以前的值 (key, value[, callback])
strlen
獲取指定鍵值的長度 (key[, callback])
incr
將指定鍵中儲存的數字值增一 (key[, callback])
incrby
將指定鍵中儲存的數字值增長若干量 (key, increment[, callback])
incrbyfloat
將指定鍵中儲存的浮點值增長若干量 (key, increment[, callback])
你或許能夠在 Redis 的官方網站中獲得啓示。promise
不喜歡嵌套回調?你或許會喜歡 Promise:
min.incr('user_id') .then(function(curr) { return min.hmset('user-' + curr, { name: 'Will Wen Gunn', id: 'iwillwen', email: 'willwengunn@gmail.com' }); }) .then(function(key) { var id = key.substr(5); return min.sadd('user-msg-' + id, 'WelCome!'); }) .then(function(length) { // ... }) .fail(function(err) { console.log(err); });
還不行?不須要依賴?那麼來看看MULTI
吧:
min.multi() .incr('msg-seq') .incr('msg-seq') .incr('msg-seq') .exec(function(err, results) { if (err) { return console.error(err); } console.log(results); //=> [ [ 1 ], [ 2 ], [ 3 ] ] });
MinDB 也支持多數據庫:
var Min = min.fork(); Min.set('foo', 'bar') .then(/*...*/) .fail(/*...*/);
請閱讀 Store Interface 文檔.
更多信息,能夠閱讀其項目的說明。