npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

uber-cache

v2.2.3

Published

Async in-memory that sets the interface for a number of uber-* caching engine: Memcached, Redis, MongoDB, LevelDB

Downloads

621

Readme

uber-cache - Async caching module with compatible backend options

build status dependency status

Uber Cache ensures you have a consistent cache interface regardless of the caching engine. All caching engines support TTL and LRU and have a async/callback style interface. This means you can easily implement your own engines without changing the interface in your application.

Installation

npm install uber-cache

Usage

An async interface due to the evented IO of the storage engines so it is necessary to use a callback style when manipulating the cache.


var ttlInMilliseconds = 1
  , someData = { some: 'data' }

cache.set('some-key', someData, ttlInMilliseconds, function(error, cachedItem) {
  if (error) {
    // Handle the error
    return false
  }

  console.log('Cache written key:' + cachedItem.key + ' value:' + cachedItem.value)
})

// Later that day, but before the TTL.
cache.get('some-key', function(error, cachedItem) {
  if (error) {
   // Handle the error
    return false
  }

  console.log('Cache from key:' + cachedItem.key + ' value:' + cachedItem.value)
})

API

Functions

  • set(key, value, ttl, callback)

    ttl milliseconds until expiry. Optional

  • get(key, callback)

  • delete(key, callback)

  • clear(callback)

  • size(callback)

  • dump(callback)

Events

  • miss(key)

    Emitted when a get(key) fails to find a valid cached item with that key.

  • hit(key, value, ttl)

    Emitted when a get(key) finds a valid item in the cache.

  • stale(key, value, ttl)

    Emitted when a get(key) can’t find a valid item but a stale item still exists.

Engines

The uber-cache engines are decoupled from the main project. Unlike other modules that force you to install dependencies for things you not going to use, Uber Cache engines are self contained modules that you also include into your project that all have the same interface as this module.

Currently the following engines are available:

  • MongoDB - http://github.com/serby/uber-cache-mongodb - MongoDB backed cache
  • Redis - http://github.com/serby/uber-cache-redis - Redis backed cache
  • LevelDB - http://github.com/serby/uber-cache-leveldb - LevelDB backed cache

Credits

Paul Serby follow me on twitter

License

Licensed under the New BSD License