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

FreeBSD Manual Pages

  
 
  

home | help
MEMCACHED_BEHAVIOR_SET(3)	 libmemcached	     MEMCACHED_BEHAVIOR_SET(3)

NAME
       memcached_behavior_set -	libmemcached Documentation

       Manipulate the behavior of a memcached_st structure.

SYNOPSIS
       #include	<libmemcached/memcached.h>

       memcached_behavior_t

       uint64_t			     memcached_behavior_get(memcached_st *ptr,
       memcached_behavior_t flag)

       memcached_return_t	     memcached_behavior_set(memcached_st *ptr,
       memcached_behavior_t flag, uint64_t data)

       Compile and link	with -lmemcached

DESCRIPTION
       libmemcached(3)	   behavior	can	be     modified	   by	 using
       memcached_behavior_set(). Default behavior is the library strives to be
       quick  and accurate. Some behavior, while being faster, can also	result
       in not entirely accurate	behavior (for instance,	 memcached_set()  will
       always respond with MEMCACHED_SUCCESS).

       memcached_behavior_get()	 takes	a behavior flag	and returns whether or
       not that	behavior is currently enabled in the client.

       memcached_behavior_set()	changes	the value of a	particular  option  of
       the client. It takes both a flag	(listed	below) and a value. For	simple
       on or off options you just need to pass in  a  value  of	 1.  Calls  to
       memcached_behavior_set()	will flush and reset all connections.

       MEMCACHED_BEHAVIOR_USE_UDP

       Causes libmemcached(3) to use the UDP transport when communicating with
       a memcached server. Not all I/O operations are testsed when this	behav-
       ior   is	  enababled.   The   following	operations  will  return  MEM-
       CACHED_NOT_SUPPORTED when executed with the  MEMCACHED_BEHAVIOR_USE_UDP
       enabled:	 memcached_version(),  memcached_stat(), memcached_get(), mem-
       cached_get_by_key(),  memcached_mget(),	memcached_mget_by_key(),  mem-
       cached_fetch(), memcached_fetch_result(), memcached_fetch_execute().

       All  other  operations are testsed but are executed in a	'fire-and-for-
       get' mode, in which once	the client has executed	the operation, no  at-
       tempt  will be made to ensure the operation has been received and acted
       on by the server.

       libmemcached(3) does not	allow TCP and UDP servers to be	shared	within
       the  same  libmemached(3)  client  'instance'.  An attempt to add a TCP
       server when this	behavior is enabled will  result  in  a	 MEMCACHED_IN-
       VALID_HOST_PROTOCOL,  as	 will attempting to add	a UDP server when this
       behavior	has not	been enabled.

       MEMCACHED_BEHAVIOR_NO_BLOCK

       Causes libmemcached(3) to use  asychronous  IO.	This  is  the  fastest
       transport available for storage functions.

       MEMCACHED_BEHAVIOR_SND_TIMEOUT

       This  sets  the	microsecond behavior of	the socket against the SO_SND-
       TIMEO flag.  In cases where you cannot use non-blocking	IO  this  will
       allow you to still have timeouts	on the sending of data.

       MEMCACHED_BEHAVIOR_RCV_TIMEOUT

       This  sets  the	microsecond behavior of	the socket against the SO_RCV-
       TIMEO flag.

       In cases	where you cannot use non-blocking IO this will	allow  you  to
       still have timeouts on the reading of data.

       MEMCACHED_BEHAVIOR_TCP_NODELAY

       Turns  on the no-delay feature for connecting sockets (may be faster in
       some environments).

       MEMCACHED_BEHAVIOR_HASH

       Makes the default hashing algorithm for keys use	MD5. The value can  be
       set   to	  either   MEMCACHED_HASH_DEFAULT,   MEMCACHED_HASH_MD5,  MEM-
       CACHED_HASH_CRC,	MEMCACHED_HASH_FNV1_64,	MEMCACHED_HASH_FNV1A_64,  MEM-
       CACHED_HASH_FNV1_32,  MEMCACHED_HASH_FNV1A_32,  MEMCACHED_HASH_JENKINS,
       MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR.

       Each hash has it's advantages and it's weaknesses. If you don't know or
       don't care, just	go with	the default.

       Support	for MEMCACHED_HASH_HSIEH is a compile time option that is dis-
       abled by	default. To enable tests for this hashing algorithm, configure
       and build libmemcached with the --enable-hash_hsieh.

       MEMCACHED_BEHAVIOR_DISTRIBUTION

       Using  this  you	 can  enable different means of	distributing values to
       servers.

       The default method is  MEMCACHED_DISTRIBUTION_MODULA.  You  can	enable
       consistent  hashing by setting MEMCACHED_DISTRIBUTION_CONSISTENT.  Con-
       sistent hashing delivers	better distribution and	allows servers	to  be
       added  to  the  cluster	with  minimal  cache  losses.  Currently  MEM-
       CACHED_DISTRIBUTION_CONSISTENT is an alias for the value	MEMCACHED_DIS-
       TRIBUTION_CONSISTENT_KETAMA.

       MEMCACHED_BEHAVIOR_CACHE_LOOKUPS

       Deprecated since	version	0.46(?): DNS lookups are now always cached un-
       til an error occurs with	the server.

       Memcached can cache named lookups so that DNS  lookups  are  made  only
       once.

       MEMCACHED_BEHAVIOR_SUPPORT_CAS

       Support CAS operations (this is not enabled by default at this point in
       the server since	it imposes a slight performance	penalty).

       MEMCACHED_BEHAVIOR_KETAMA

       Sets the	default	distribution to	 MEMCACHED_DISTRIBUTION_CONSISTENT_KE-
       TAMA and	the hash to MEMCACHED_HASH_MD5.

       MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED
	      Sets  the	default	distribution to	MEMCACHED_DISTRIBUTION_CONSIS-
	      TENT_KETAMA with the weighted  tests.   and  the	hash  to  MEM-
	      CACHED_HASH_MD5.

       MEMCACHED_BEHAVIOR_KETAMA_HASH

       Sets the	hashing	algorithm for host mapping on continuum. The value can
       be  set	to  either  MEMCACHED_HASH_DEFAULT,  MEMCACHED_HASH_MD5,  MEM-
       CACHED_HASH_CRC,	 MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEM-
       CACHED_HASH_FNV1_32, and	MEMCACHED_HASH_FNV1A_32.

       MEMCACHED_BEHAVIOR_KETAMA_COMPAT

       Sets the	compatibility mode. The	 value	can  be	 set  to  either  MEM-
       CACHED_KETAMA_COMPAT_LIBMEMCACHED   (this   is  the  default)  or  MEM-
       CACHED_KETAMA_COMPAT_SPY	to be compatible with the SPY Memcached	client
       for Java.

       MEMCACHED_BEHAVIOR_POLL_TIMEOUT

       Modify the timeout value	that is	used by	poll. The default value	is -1.
       An signed int must be passed to memcached_behavior_set to  change  this
       value  (this requires casting). For memcached_behavior_get a signed int
       value will be cast and returned as the unsigned long long.

       MEMCACHED_BEHAVIOR_USER_DATA

       Deprecated since	version	<: 0.30

       MEMCACHED_BEHAVIOR_BUFFER_REQUESTS

       Enabling	buffered IO causes commands to "buffer"	instead	of being sent.
       Any  action  that gets data causes this buffer to be be sent to the re-
       mote connection.	Quiting	the connection or closing down the  connection
       will  also  cause  the buffered data to be pushed to the	remote connec-
       tion.

       MEMCACHED_BEHAVIOR_VERIFY_KEY

       Enabling	this will cause	libmemcached(3)	to test	 all  keys  to	verify
       that they are valid keys.

       MEMCACHED_BEHAVIOR_SORT_HOSTS

       Enabling	 this will cause hosts that are	added to be placed in the host
       list in sorted order. This will defeat consisten	hashing.

       MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT

       In non-blocking mode this changes  the  value  of  the  timeout	during
       socket  connection  in  milliseconds.  Specifying  -1 means an infinite
       timeaout.

       MEMCACHED_BEHAVIOR_BINARY_PROTOCOL

       Enable the use of the binary protocol. Please note that you cannot tog-
       gle this	flag on	an open	connection.

       MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT

       Set  this  value	 to enable the server be removed after continuous MEM-
       CACHED_BEHAVIOR_SERVER_FAILURE_LIMIT times connection failure.

       MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK

       Set this	value to tune the number of messages that may be  sent	before
       libmemcached  should start to automatically drain the input queue. Set-
       ting this value to high,	may cause libmemcached to deadlock (trying  to
       send data, but the send will block because the input buffer in the ker-
       nel is full).

       MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK

       Set this	value to tune the number of bytes that may be sent before lib-
       memcached  should start to automatically	drain the input	queue (need at
       least 10	IO requests sent without reading the  input  buffer).  Setting
       this  value to high, may	cause libmemcached to deadlock (trying to send
       data, but the send will block because the input buffer in the kernel is
       full).

       MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH

       The  binary protocol works a bit	different than the textual protocol in
       that a multiget is implemented as a pipe	of single get-operations which
       are  sent  to  the  server in a chunk. If you are using large multigets
       from your application, you may improve the latency of the gets by  set-
       ting  this  value  so you send out the first chunk of requests when you
       hit the specified limit.	 It allows the servers to start	processing the
       requests	 to send the data back while the rest of the requests are cre-
       ated and	sent to	the server.

       MEMCACHED_BEHAVIOR_NOREPLY

       Set this	value to specify that you really don't care about  the	result
       from your storage commands (set,	add, replace, append, prepend).

       MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS

       If  you	just  want  "a	poor  mans HA",	you may	specify	the numbers of
       replicas	libmemcached should store of each item (on different servers).
       This  replication  does not dedicate certain memcached servers to store
       the replicas in,	but instead it will store the replicas	together  with
       all  of	the  other  objects (on	the 'n'	next servers specified in your
       server list).

       MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ

       Allows randomizing the replica reads starting point. Normally the  read
       is  done	 from primary server and in case of miss the read is done from
       primary + 1, then primary + 2 all the way to 'n'	replicas. If this  op-
       tion  is	 set  on the starting point of the replica reads is randomized
       between the servers.  This allows distributing read  load  to  multiple
       servers with the	expense	of more	write traffic.

       MEMCACHED_BEHAVIOR_CORK

       This  open has been deprecated with the behavior	now built and used ap-
       propriately on selected platforms.

       MEMCACHED_BEHAVIOR_KEEPALIVE

       Enable TCP_KEEPALIVE behavior.

       MEMCACHED_BEHAVIOR_KEEPALIVE_IDLE

       Specify time, in	seconds, to mark a connection as idle.	This  is  only
       available as an option Linux.

       MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE

       Find  the current size of SO_SNDBUF. A value of 0 means either an error
       occured or no hosts were	available. It is safe to assume	system default
       if  this	occurs.	If an error occurs you can checked the last cached er-
       rno statement to	find the specific error.

       MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE

       Find the	current	size of	SO_RCVBUF. A value of 0	means either an	 error
       occured or no hosts were	available. It is safe to assume	system default
       if this occurs. If an error occurs you can checked the last cached  er-
       rno statement to	find the specific error.

       MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT

       Deprecated	    since	   version	    0.48:	   See
       MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS

       This number of times a host can have an error before it is disabled.

       MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS

       Deprecated	   since	  version	   0.48:	   See
       MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS

       If  enabled  any	 hosts which have been flagged as disabled will	be re-
       moved from the list of servers in the memcached_st structure. This must
       be used in combination with MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT.

       MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS
	      If enabled any hosts which have been flagged as disabled will be
	      removed from the list of servers in the memcached_st structure.

       MEMCACHED_BEHAVIOR_RETRY_TIMEOUT

       When enabled a host which is problematic	will only be checked for usage
       based  on the amount of time set	by this	behavior. The value is in sec-
       onds.

       MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY

       When enabled the	prefix key will	be added to the	key  when  determining
       server  by hash.	See MEMCACHED_CALLBACK_NAMESPACE for additional	infor-
       mation.

RETURN
       memcached_behavior_get returns either the current value of the get,  or
       0  or  1	 on  simple flag behaviors (1 being enabled). memcached_behav-
       ior_set returns failure or success.

NOTES
       memcached_behavior_set in version .17 was changed from taking a pointer
       to data value, to taking	a uin64_t.

HOME
       To find out more	information please check: http://libmemcached.org/

SEE ALSO
       memcached(1) libmemcached(3) memcached_strerror(3)

AUTHOR
       Brian Aker

COPYRIGHT
       2011-2013, Brian	Aker DataDifferential, http://datadifferential.com/

1.0.18			       February	09, 2014     MEMCACHED_BEHAVIOR_SET(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN | NOTES | HOME | SEE ALSO | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=memcached_behavior_set&sektion=3&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help