Skip to content

Commit

Permalink
new README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
sh84 committed Oct 16, 2012
1 parent e4bbb8e commit a10eeab
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 5 deletions.
75 changes: 73 additions & 2 deletions README.md
@@ -1,4 +1,75 @@
node-cache
mcache
=============

A simple and fast memory cache for node.js
A simple and fast async memory cache for node.js
Call only one time set function for many simultaneous get requests.
It is designed for quick return of data from the memory - for get operations are performed minimal coding.
Api built in asynchronous design, with callbacks.

Examples
=============

###Abstract example

var Mcache = require('mcache');
// ttl = 600 sec, gc_time = 60 sec
cache = new Mcache(60, 10, function(key, callback) {
// this code will be executed at most once every 600 seconds
var error = null;
var value = ...;
callback(error, value);
});
var id = ... ;
cache.get(id, function(err, data) {
console.log(err, data)
});


###Example with mysql

var Mcache = require('mcache');
// ttl = 60 sec, gc_time = 10 sec
cache = new Mcache(60, 10, function(key, callback) {
// this code will be executed at most once every 60 seconds
mysql.query('SELECT ... WHERE id=?', key, callback);
});
var id = ... ;
cache.get(id, function(err, data) {
console.log(err, data)
});

API
=============

## constructor(ttl, gc_time, setfunction)
create new cache object

* ttl - time to live for item, seconds
* gc_time - interval for clear expired items, seconds
Can be empty - you must call clearOld manually.
* setfunction(key, callback) - function, get the value by the key, must call callback(error, value)


## get(key, callback)
get item from cache by key

* key - can be any value
* callback(error, value) - function

## set(key, val)
manual item setting without setfunction call

## del(key)
delete item

## updateTime(key)
update set_time (time when the function was called) to the current time

## size()
get items count

## hash()
get all items in hash

## clearOld()
delete all expired items
2 changes: 1 addition & 1 deletion index.js
Expand Up @@ -98,7 +98,7 @@ MemoryCache.prototype.hash = function() {

// delete all expired data
MemoryCache.prototype.clearOld = function() {
var time = Math.floor(Date.now()/1000);
var time = Date.now();
for (var i in this.data) {
if (this.data[i].t && time - this.data[i].t > this.ttl) {
delete this.data[i];
Expand Down
4 changes: 2 additions & 2 deletions package.json
@@ -1,9 +1,9 @@
{
"author": "sh84",
"name": "mcache",
"description": "A simple and fast memory cache for node.js",
"description": "A simple and fast memory cache for node.js with async api",
"keywords": ["memory", "cache", "caching", "async", "ram", "simple"],
"version": "0.1.0",
"version": "0.1.1",
"repository": {
"type": "git",
"url": "git://github.com/sh84/node-mcache.git"
Expand Down

0 comments on commit a10eeab

Please sign in to comment.