Incrementing Values in Memcached Using Node.js (Detailed Guide w/ Code Examples)

Use Case(s)

The incr command in Memcached is commonly used for:

  • Implementing rate limiters, where you need to count the number of requests from a specific IP address or user.
  • Tracking and incrementing the number of page views on a website.
  • Generating unique sequential IDs in a distributed system.

Code Examples

Below is an example of using the incr command with Memcached in Node.js.

First, we'll import the memcached module, connect to the Memcached server, and then use the incr function to increase a stored value:

var Memcached = require('memcached'); var memcached = new Memcached(''); // Let's assume that the 'counter' key is already set to some integer memcached.incr('counter', 1, function (err, data) { if(err) throw new Error(err); console.log(data); // Should print the incremented value of 'counter' });

In this code snippet, we're connecting to the Memcached server running on localhost at port 11211. The incr function increases the value of the 'counter' key by 1. If an error occurs during this operation, it will be thrown; otherwise, the new incremented value of 'counter' will be logged to the console.

Best Practices

  • Always check for errors in your callback functions. This will help you catch issues like connection failures or operations on non-existent keys.
  • For performance, it is recommended to reuse your Memcached instance rather than creating a new one for each operation.

Common Mistakes

  • Not checking if the key exists and is an integer before trying to increment it. If the key does not exist or its value is not a number, the incr operation will fail.
  • Trying to increment a value by a non-integer. The increment amount must be an integer.


Q: Can I increment a key that doesn't exist? A: No. The key you want to increment must already exist in the cache, and its value must be a numeric string.

Q: What happens if I try to increment a key with a non-numeric value? A: The incr operation will fail. Memcached only allows incr operations on keys with numeric values.

Was this content helpful?

Start building today

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement.