Memcached Add in Python (Detailed Guide w/ Code Examples)

Use Case(s)

The add command in Memcached is used when you want to store a key-value pair, but only if the server doesn't already hold data for this key. This can be particularly useful in scenarios where you want to avoid overwriting existing data.

Code Examples

Here is an example of how to use the add function using the pymemcache library in Python:

from pymemcache.client.base import Client client = Client(('localhost', 11211)) # Adding a new key-value pair result = client.add('my_key', 'my_value') print(result) # it will print True if the key was added successfully, False otherwise.

In this example, we're connecting to a Memcached server running on localhost and default port 11211. We then try to add a new key-value pair ('my_key', 'my_value'). If 'my_key' doesn't already exist, it will be added, and the method will return True.

If we try to add the same key again, the operation will fail:

result = client.add('my_key', 'another_value') print(result) # it will print False because 'my_key' already exists.

Best Practices

  • Use unique keys: The add method is designed to avoid overwriting existing keys. Thus, ensure your application logic takes into account that keys should be unique.
  • Handle add failures: Since add returns False when it fails to add a key (because it's already there), make sure your code handles such cases appropriately.

Common Mistakes

  • Assuming add will always succeed: If the add operation returns False, it means the key already exists. Your code should handle this scenario correctly and not assume that the add operation will always succeed.


1. What's the difference between 'set' and 'add' in Memcached?

The 'set' command will always store the value, regardless of whether the key already exists or not. On the other hand, 'add' will only store the value if the key does not exist.

2. What happens if I try to add a key that already exists?

If you try to add a key that already exists using the add method, the operation will simply fail and return False.

Was this content helpful?

Start building today

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