Skip to content

Latest commit

 

History

History

datacache

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

datacache module


Access

gracenode.datacache

Configurations

"modules": {
	"hosts": ["hostName"...] or { "hostName": int (load balance)...},
	"ttl": int, // in seconds
	"options": Object
}

#####API: create

Cache create(String name)

Returns an instance of Cache class.

Cache class uses memcache.

Cache class

get

void get(String key, Function callback)

Read a value associated with the given key.

var peopleTable = gracenode.mysql.create('people');
var peopleCache = gracenode.datacache.create('people');
var sql = 'SELECT * FROM people WHERE name = ?';
var params = ['bob'];
peopleCache.get(sql + params.json(''), function (error, value) {
	if (error) {
		throw new Error(error);
	}
	if (value) {
		// we found the value > do something with it.
	} else {
		// no cache found
		peopleTable.getOne(sql, param, function (error, res) {
			if (error) {
				throw new Error(error);
			}
			// set cache
			peopleCache.set(sql + params.json(''), res, function (error) {
				if (error) {
					throw new Error(error);
				}
				// we are done
			});
		});
	});
});

set

void set(String key, mixed value, Function callback)

Sets a value associated with the given key.

var peopleTable = gracenode.mysql.create('people');
var peopleCache = gracenode.datacache.create('people');
var sql = 'SELECT * FROM people WHERE name = ?';
var params = ['bob'];
peopleCache.get(sql + params.json(''), function (error, value) {
	if (error) {
		throw new Error(error);
	}
	if (value) {
		// we found the value > do something with it.
	} else {
		// no cache found
		peopleTable.getOne(sql, param, function (error, res) {
			if (error) {
				throw new Error(error);
			}
			// set cache
			peopleCache.set(sql + params.json(''), res, function (error) {
				if (error) {
					throw new Error(error);
				}
				// we are done
			});
		});
	});
});

How to flush old cache

// flush old cache value on updated mysql data
var peopleTable = gracenode.mysql.create('people');
var peopleCache = gracenode.datacache.create('people');
var sql = 'UPDATE people SET age = ? WHERE name = ?';
var params = [40, 'bob'];
peopleTable.write(sql, params, function (error) {
	if (error) {
		throw new Error(error);
	}
	// successfully updated > now we need to flush out the old cache
	peopleCache.update(function (error) {
		if (error) {
			throw new Error(error);
		}
		// we are done
	});
});