appc-cache
AppC cache client library
Last updated 5 years ago by jhaynie .
LicenseRef-LICENSE · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install appc-cache 
SYNC missed versions from official npm registry.

Appcelerator Cache Client library Build Status

The library makes it easy to use the Appcelerator Cache API Service. This library is meant to act as a drop-in replacement for the Node Redis Client Library.

Installation

npm install appc-cache --save

Usage

You must first include the library and create an instance. At a minimum, you must pass in the key and secret values for constructing the client.

var Cache = require('appc-cache'),
    cache = new Cache({
        key: 'MY_KEY',
        secret: 'MY_SECRET'
    });

Once you have created the client instance, you can use it. This library is (generally) compatible with the Redis API.

cache.set('key', 'value', function (err) {
    // set the value
});

cache.get('key', function (err, value) {
    console.log('cached value is', value);
});

Redis Client emulation

This library emulates the same API as the redis client. For example:

var redis = require('appc-cache');
var client = redis.createClient({
    key: 'key'
});
client.auth('secret');
var multi = client.multi();
multi.echo('OK', redis.print);
multi.exec();

Using as an Express Session Store

This library provides an Express compatible session store implementation. Example usage:

var app = express(),
    session = require('express-session'),
    Cache = require('appc-cache'),
    CacheStore = Cache.createSessionStore(session),
    options = {
        key: 'mykey',
        secret: 'mysecret',
        ttl: 2000
    };
app.use(session({
    store: new CacheStore(options),
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: false
}));

Using Distributed Locks

This library supports distributed locks. With a distributed lock, only one client can acquire a named lock at a time for a specified duration.

cache.lock('my.lock', 10000, function (err, lock) {
    cache.unlock(lock);
});

You can extend the lock with the extend method. For example:

cache.lock('my.lock', 10000, function (err, lock) {
    // extend the lock another 10 sec
    cache.extend(lock, 10000);
    cache.unlock(lock);
});

APIs that are not supported

There are a number of APIs that are not support or not allowed. For example, this library does not support shutdown. For a full list of commands, see the file lib/blacklist.js.

Running the Unit Tests

You can run the unit tests by setting the value of the following environment variables APPC_TEST_KEY and APPC_TEST_SECRET to the values to use for caching. For example:

APPC_TEST_KEY=kkkkkkkkkkkkkkkkkkkkkkkkk APPC_TEST_SECRET=ssssssssssssssssssssssss grunt

License

The library is Confidential and Proprietary to Appcelerator, Inc. and licensed under the Appcelerator Software License Agreement. Copyright (c) 2015 by Appcelerator, Inc. All Rights Reserved.

Current Tags

  • 0.0.2                                ...           latest (5 years ago)

2 Versions

  • 0.0.2                                ...           5 years ago
  • 0.0.1                                ...           5 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (7)
Dev Dependencies (15)
Dependents (2)

Copyright 2014 - 2016 © taobao.org |