Memcache::add

Description

Memcache::add() stores variable
var with key only if such
key doesn't exist at the server yet.
Also you can use memcache_add() function.

Parameters

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other
types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item
compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never
expire. You can also use Unix timestamp or a number of seconds starting
from current time, but in the latter case the number of seconds may not
exceed 2592000 (30 days).

Return Values

Returns TRUE on success or FALSE on failure.
Returns FALSE if such key already exist. For the rest
Memcache::add() behaves similarly to
Memcache::set().

Race conditions happen on an heavy load server when more than one thread tries to execute memcache_add.
For example if thread A and thread B try to save the same key you can test that sometimes both return TRUE.
To have the right behaviour you can verify that the correct value is in the assigned key: