PHP Memcached: Flush All (Detailed Guide w/ Code Examples)

Use Case(s)

The 'php memcached flush_all' operation is typically used when you need to invalidate or clear all data from your Memcached server. This can be necessary in several scenarios, such as:

  1. During development or testing, where you want to ensure a clean slate.
  2. If the data in cache has become corrupted or is out-of-date.
  3. If you want to reclaim all memory for new data.

Code Examples

Using the flush method of the PHP Memcached class, you can erase all data from all servers in your pool. Here's a simple example:

<?php $mem = new Memcached(); $mem->addServer('localhost', 11211); // Add some data to cache $mem->set('key1', 'value1'); $mem->set('key2', 'value2'); // Flush all data $mem->flush(); ?>

In this code snippet, we first create a Memcached instance and add a server to our pool. We add some sample data to the cache. Finally, we call the flush function to delete all data from the server.

Please note that Memcached's flush function doesn't immediately remove items, but invalidates them for future get requests.

Best Practices

  1. Use with caution: The flush command invalidates all data on all servers, so it should be used sparingly and with caution in production environments.
  2. Error handling: Always check the return value of the flush function. It returns TRUE on success or FALSE on failure.

Common Mistakes

One common mistake is the assumption that flush instantly removes all items from the server. In reality, it sets them to be expired. Newly set items with the same key will not be affected, but get operations will not find the old data.


Q: Does the 'flush' operation immediately free up memory?

A: No, the 'flush' operation only marks items as expired. The memory they occupy is freed up gradually as new data is stored in the cache.

Was this content helpful?

Start building today

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