X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=docs%2Fmemcached_behavior.pod;h=51e09e71436236ddede4ece9abc6b09b02cdd0d4;hb=a9d5b6c6db3a99ba92ef4b298702ecfbbd5145af;hp=d9e157f4ea1e4116dbceb6ecc0e86eb8d67927bd;hpb=7add2cb42be7d072888ab916eb35cdef8a2774a1;p=m6w6%2Flibmemcached diff --git a/docs/memcached_behavior.pod b/docs/memcached_behavior.pod index d9e157f4..51e09e71 100755 --- a/docs/memcached_behavior.pod +++ b/docs/memcached_behavior.pod @@ -10,14 +10,14 @@ C Client Library for memcached (libmemcached, -lmemcached) #include - unsigned long long + uint64_t memcached_behavior_get (memcached_st *ptr, memcached_behavior flag); memcached_return memcached_behavior_set (memcached_st *ptr, memcached_behavior flag, - void *data); + uint64_t data); =head1 DESCRIPTION @@ -32,23 +32,117 @@ 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. +off options you just need to pass in a value of 1. Calls to +memcached_behavior_set() will flush and reset all connections. =over 4 =item MEMCACHED_BEHAVIOR_NO_BLOCK Causes libmemcached(3) to use asychronous IO. This is the fastest transport -available. +available for storage functions. For read operations it is currently +similar in performance to the non-blocking method (this is being +looked into). + +=item MEMCACHED_BEHAVIOR_SND_TIMEOUT + +This sets the microsecond behavior of the socket against the SO_SNDTIMEO flag. +In cases where you cannot use non-blocking IO this will allow you to still have +timeouts on the sending of data. + +=item MEMCACHED_BEHAVIOR_RCV_TIMEOUT + +This sets the microsecond behavior of the socket against the SO_RCVTIMEO flag. +In cases where you cannot use non-blocking IO this will allow you to still have +timeouts on the reading of data. =item MEMCACHED_BEHAVIOR_TCP_NODELAY Turns on the no-delay feature for connecting sockets (may be faster in some environments). -=item MEMCACHED_BEHAVIOR_MD5_HASHING +=item 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, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_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 dont know or dont care, just go with the default. + +=item 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. +Consistent hashing delivers better distribution and allows servers to be +added to the cluster with minimal cache losses. Currently +MEMCACHED_DISTRIBUTION_CONSISTENT is an alias for the value +MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA. + +=item MEMCACHED_BEHAVIOR_CACHE_LOOKUPS + +Memcached can cache named lookups so that DNS lookups are made only once. + +=item 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). + +=item MEMCACHED_BEHAVIOR_KETAMA + +Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA +and the hash to MEMCACHED_HASH_MD5. + +=item MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED + +Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support. +and the hash to MEMCACHED_HASH_MD5. + +=item 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, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, and MEMCACHED_HASH_FNV1A_32. + +=item MEMCACHED_BEHAVIOR_POLL_TIMEOUT -Makes the default hashing algorithm for keys use MD5. +Modify the timeout value that is used by poll(). The default value is -1. An signed int pointer must be passed to memcached_behavior_set() to change this value. For memcached_behavior_get() a signed int value will be cast and returned as the unsigned long long. + +=item MEMCACHED_BEHAVIOR_USER_DATA + +This allows you to store a pointer to a specifc piece of data. This can be +retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st + +will copy the pointer to the clone. This was deprecated in 0.14 in favor +of memcached_callback_set(3). This will be removed in 0.15. + +=item 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 remote +connection. Quiting the connection or closing down the connection will also +cause the buffered data to be pushed to the remote connection. + +=item MEMCACHED_BEHAVIOR_VERIFY_KEY + +Enabling this will cause libmemcached(3) to test all keys to verify that they +are valid keys. + +=item 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. + +=item MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT + +In non-blocking mode this changes the value of the timeout during socket +connection. + +=item MEMCACHED_BEHAVIOR_BINARY_PROTOCOL + +Enable the use of the binary protocol. Please note that you cannot toggle +this flag on an open connection. + +=item MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT + +Set this value to enable the server be removed after continuous MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +times connection failure. =back @@ -56,7 +150,12 @@ Makes the default hashing algorithm for keys use MD5. memcached_behavior_get() returns either the current value of the get, or 0 or 1 on simple flag behaviors (1 being enabled). memcached_behavior_set() -returns whether or not the behavior was enabled. +returns failure or success. + +=head1 NOTES + +memcached_behavior_set() in version .17 was changed from taking a pointer +to data value, to taking a uin64_t. =head1 HOME