Skip to content

newghost/redblade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Redblade

Redis ORM/Index Helper

Author : Kris Zhang

License

BSD, See our license file

Create and remove index key automatically

Init

//create a redis client
var client = require('redis').createClient();

//choose an empty DB
client.select(4)

//schema is optional
redblade.init({ schema:'/path/to/your/schema/folder',  client: client }, function(err) {
    
})

Load Schema: article

  redblade.schema('article', {
      "_id"         : "id"
    , "poster"      : "index('user_article')"
    , "keywords"    : "keywords('articlekeys', return +new Date() / 60000 | 0)"
    , "title"       : ""
    , "content"     : ""
  })

Insert an article

redblade.insert('article', {
   _id        : '1234567890'
  , poster     : 'airjd'
  , keywords   : '信息技术,JavaScript,NoSQL'
  , title      : '测试用的SLIDE 标题'
  , content    : '测试用的SLIDE 内容'
}, function(err) {

})

Select User by [Only index fileds defined in schema can be selected, like index, keywords ]

redblade.select('article', { poster:'airjd' }, function(err, articles) {
  console.log(articles[0])
})

//or

redblade.select('article', { keywords: 'NoSQL' }, function(err, articles) {
  console.log(articles[0])
})

What happened?

/*
sorted set: "keywords" : "keywords('articlekeys', return +new Date() / 60000 | 0)"
*/
redblade.client.smembers('articlekeys', function(err, keys) {
    console.log(keys)
    //['信息技术','JavaScript','NoSQL']
})

redblade.client.zrange('articlekeys:NoSQL', 0, 100, function(err, articleIDs) {
    console.log(articleIDs)
    //["1234567890"]
})


/*
set: "poster" : "index('user_article')" => user_article:[poster value]
*/
redblade.client.smembers('user_article:airjd', function (err, articleIDs) {
    console.log(articlesIDs)
})

Remove articles

redblade.remove('article', { poster: 'airjd', keywords: 'SQL' }, function(err, num) {
    console.log(num)

    redblade.client.zrange('articlekeys:NoSQL', 0, 100, function(err, members) {
      //should be []
      console.log(members)
    })
})

中文文档

http://redblade.ourjs.com/

示例项目[OurJS]

http://github.com/newghost/ourjs

About

Redis ORM/Index Helper

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published