React Native LRU cache build on top of AsyncStorage
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 13 commits behind timfpark:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.gitignore
.travis.yml
README.md
package.json

README.md

react-native-cache

LRU cache built on top of React Native's AsyncStorage (or included MemoryStore) and automatic pruning of least recently used items.

Usage

You initialize a cache using the following.

var cache = new Cache({
    namespace: 'myapp',
    policy: {
        maxEntries: 50000
    },
    backend: AsyncStorage
});

Multiple caches can be mantained in an application by instantiating caches with different namespaces.

Setting an item in the cache

cache.setItem('hello', 'world', function(err) {
    // key 'hello' is 'world' in cache
});

Get an item in the cache

cache.getItem('key1', function(err, value) {
   console.log(value);
   // 'hello'
});

Getting an item from the cache also moves it to the end of the LRU list: it will be evicted from the cache last.

Delete an item from the cache

cache.delItem('key1', function(err) {
    // 'key1' is no more.
});

Peeking at an item in the cache

You can also peek at an item in the cache without updating its position in the LRU list:

cache.peekItem('key1', function(err, value) {
    // 'world'
});

For more usage examples, see the tests.