Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
MEMCACHED_CAS(3)		 libmemcached		      MEMCACHED_CAS(3)

       memcached_cas - Working with data on the	server in an atomic fashion

       #include	<libmemcached/memcached.h>

       memcached_return_t  memcached_cas(memcached_st *ptr,  const  char *key,
       size_t key_length, const	char *value, size_t value_length, time_t expi-
       ration, uint32_t	flags, uint64_t	cas)

       memcached_return_t     memcached_cas_by_key(memcached_st	*ptr,	 const
       char *group_key,	    size_t group_key_length,	 const	    char *key,
       size_t key_length, const	char *value, size_t value_length, time_t expi-
       ration, uint32_t	flags, uint64_t	cas)

       Compile and link	with -lmemcached

       memcached_cas() overwrites data in the server  as  long	as  the	 "cas"
       value  is  still	the same in the	server.	You can	get the	cas value of a
       result by calling memcached_result_cas()	 on  a	memcached_result_st(3)
       structure.  At  the point that this note	was written cas	is still buggy
       in memached. Turning on tests for it in	libmemcached(3)	 is  optional.
       Please see memcached_set() for information on how to do this.

       memcached_cas_by_key()  method  behaves	in a similar method as the non
       key methods. The	difference is that it uses the group_key parameter  to
       map objects to particular servers.

       memcached_cas() is testsed with the MEMCACHED_BEHAVIOR_USE_UDP behavior
       enabled.	However, when using these operations with  this	 behavior  on,
       there  are  limits to the size of the payload being sent	to the server.
       The reason for these limits is that the Memcached Server	does not allow
       multi-datagram  requests	 and  the current server implementation	sets a
       datagram	size to	1400 bytes. Due	to protocol overhead, the actual limit
       of  the	user  supplied data is less than 1400 bytes and	depends	on the
       protocol	in use as, well	as the operation being executed. When  running
       with  the binary	protocol, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, the size
       of the key,value, flags and expiry combined may not exceed 1368	bytes.
       When  running  with  the	ASCII protocol,	the exact limit	fluctuates de-
       pending on which	function is being executed and whether the function is
       a  cas operation	or not.	For non-cas ASCII set operations, there	are at
       least 1335 bytes	available to split  among  the	key,  key_prefix,  and
       value; for cas ASCII operations there are at least 1318 bytes available
       to split	among the key, key_prefix and value. If	the total size of  the
       command,	   including	overhead,   exceeds   1400   bytes,   a	  MEM-
       CACHED_WRITE_FAILURE will be returned.

       All methods return a value of type memcached_return_t.  On success  the
       value will be MEMCACHED_SUCCESS.	 Use memcached_strerror() to translate
       this value to a printable string.

       To find out more	information please check:

       memcached(1) libmemached(3) memcached_strerror(3) memcached_set(3) mem-
       cached_append(3)	 memcached_add(3)  memcached_prepend(3)	 memcached_re-

       Brian Aker

       2011-2013, Brian	Aker DataDifferential,

1.0.18			       February	09, 2014	      MEMCACHED_CAS(3)


Want to link to this manual page? Use this URL:

home | help