Memcached - Add Data

Memcached add command is used to set a value to a new key. If the key already exists, then it gives the output NOT_STORED.


The basic syntax of Memcached add command is as shown below −

add key flags exptime bytes [noreply]

The keywords in the syntax are as described below −

  • key − It is the name of the key by which data is stored and retrieved from Memcached.

  • flags − It is the 32-bit unsigned integer that the server stores with the data provided by the user, and returns along with the data when the item is retrieved.

  • exptime − It is the expiration time in seconds. 0 means no delay. If exptime is more than 30 days, Memcached uses it as a UNIX timestamp for expiration.

  • bytes − It is the number of bytes in the data block that needs to be stored. This is the length of the data that needs to be stored in Memcached.

  • noreply (optional) − It is a parameter that informs the server not to send any reply.

  • value − It is the data that needs to be stored. The data needs to be passed on the new line after executing the command with the above options.


The output of the command is as shown below −

  • STORED indicates success.

  • NOT_STORED indicates the data is not stored in Memcached.


In the following example, we use ‘key’ as the key and add the value Memcached in it with an expiration time of 900 seconds.

add key 0 900 9
get key
VALUE key 0 9

Failure Output

add key 0 900 5

Add Data Using Java Application

To add data in a Memcached server, you need to use the Memcached add method.


import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
   public static void main(String[] args) {
      // Connecting to Memcached server on localhost
      MemcachedClient mcc = new MemcachedClient(new
      InetSocketAddress("", 11211));
      System.out.println("Connection to server successful");
      System.out.println("add status:"+mcc.add("tutorialspoint", 900, "redis").done);
      System.out.println("add status:"+mcc.add("tp", 900, "redis").done);
      // Get value from cache
      System.out.println("Get from Cache tp:"+mcc.get("tp"));


On compiling and executing the program, you get to see the following output −

Connection to server successful
add status:false
add status:true
Get from Cache tp:redis