UNPKG

1.43 kBJavaScriptView Raw
1'use strict';
2var StorageDriver = require('../lib/StorageDriver')
3 , redis = require('redis')
4
5
6/**
7 * Create storage driver
8 * @type {StorageDriver}
9 */
10var driver = StorageDriver.create('redis')
11
12
13/**
14 * Setup
15 * @param {object} options
16 * @param {function} next
17 */
18driver.prototype.setup = function(options,next){
19 if('object' !== typeof options) options = {}
20 var port = options.port || 6379
21 var host = options.host || '127.0.0.1'
22 var password = options.password || null
23 options = options.options || {}
24 driver.$redis = redis.createClient(port,host,options)
25 if(null !== password){
26 driver.$redis.auth(password,function(err){
27 if(err) throw err
28 })
29 }
30 driver.$redis.on('ready',function(){
31 next()
32 })
33}
34
35
36/**
37 * Save
38 * @param {string} handle
39 * @param {object} data
40 * @param {function} next
41 */
42driver.prototype.save = function(handle,data,next){
43 driver.$redis.set(handle,JSON.stringify(data),function(err){
44 next(err)
45 })
46}
47
48
49/**
50 * Restore
51 * @param {string} handle
52 * @param {function} next
53 */
54driver.prototype.restore = function(handle,next){
55 driver.$redis.get(handle,function(err,data){
56 next(err,JSON.parse(data))
57 })
58}
59
60
61/**
62 * Flush
63 * @param {string} handle
64 * @param {function}next
65 */
66driver.prototype.flush = function(handle,next){
67 driver.$redis.del(handle,function(err){
68 next(err)
69 })
70}
71
72
73/**
74 * Export driver
75 * @type {StorageDriver}
76 */
77module.exports = driver