LRU cache built on top of the React Native communities' AsyncStorage v2 (or included MemoryStore) and automatic pruning of least recently used items.
- Run the following command.
npm install --save react-native-cache- Import the library.
import{Cache}from"react-native-cache";You initialize a cache using the following.
constcache=newCache({namespace: "myapp",policy: {maxEntries: 50000,// if unspecified, it can have unlimited entriesstdTTL: 0// the standard ttl as number in seconds, default: 0 (unlimited)},backend: AsyncStorage});Multiple caches can be mantained in an application by instantiating caches with different namespaces.
awaitcache.set("hello","world");// key 'hello' is now set to 'world' in namespace 'myapp'constvalue=awaitcache.get("key1");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.
awaitcache.remove("key1");// 'key1' is no more.You can also peek at an item in the cache without updating its position in the LRU list:
constvalue=awaitcache.peek("key1");// value is retrieved but LRU value is unchanged.You can look at all of the elements in the cache without updating its position in the LRU list:
constentries=awaitcache.getAll();console.dir(entries);// {// "key1": { "value": 42 }// "key2": { "value": 2 }// ...// }You can also clear all of the items in the cache with:
awaitcache.clearAll();For more usage examples, see the tests.