gracenode-memcache
v0.1.1
Published
Memcache management module for gracenode.
Downloads
2
Maintainers
Readme
Configurations
"modules": {
"hosts": ["hostName"...] or { "hostName": int (load balance)...},
"ttl": int, // in seconds
"options": Object
}
#####API: create
Returns an instance of Cache class.
Cache class uses memcache.
Cache class
getOne
Read a value associated with the given key.
var peopleTable = gracenode.mysql.create('people');
var peopleCache = gracenode.memcache.create('people');
var sql = 'SELECT * FROM people WHERE name = ?';
var params = ['bob'];
peopleCache.getOne(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.join(''), res, function (error) {
if (error) {
throw new Error(error);
}
// we are done
});
});
});
});
getMany
replace
set
Sets a value associated with the given key.
var peopleTable = gracenode.mysql.create('people');
var peopleCache = gracenode.memcache.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.join(''), res, function (error) {
if (error) {
throw new Error(error);
}
// we are done
});
});
});
});
How to delete old cache
// delete old cache value on updated mysql data
var peopleTable = gracenode.mysql.create('people');
var peopleCache = gracenode.memcache.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 delete the old cache
peopleCache.del(sql + params.join(''), function (error) {
if (error) {
throw new Error(error);
}
// we are done
});
});
del
flush