让你可以在 JavaScript 中对你的应用数据进行存储和操作。
MinDB 提供一个标准的存储接口(Store Interface
)和 Redis 风格的 API,你可以在任何 JavaScript 环境中使用。
它在 Github 上的项目主页是:https://github.com/iwillwen/mindb
据项目作者的微博资料, 他是广州石门中学的高中生,1996年出生。(编辑不得不注:后生可畏!!)
安装
普通script
标签引入:
<script style="text/javascript" src="/path/to/script/min.js">
$ npm install min
$ spm install iwillwen/min
如果你喜欢 component,你也可以使用它进行安装:
$ component install iwillwen/mindb
或者 bower?:
$ bower install mindb
基本使用方法
基本的键值存储可以通过SET
、GET
等命令操作:
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])
Hash, List, Set, Sorted Set
你或许可以在 Redis 的官方网站中得到启示。
语法糖(Syntactic sugar)
不喜欢嵌套回调?你或许会喜欢 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
请阅读 Store Interface 文档.
更多信息,可以阅读其项目的说明。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。