让你能够在 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 文档.
更多信息,能够阅读其项目的说明。