X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=docs%2Fmemcached_cas.rst;h=a796f303f5c5a13a772c559c4d1bc15320659cf4;hb=a713b6d9ee850ae5805c05e8336256cea1f71138;hp=9d2188a6c4857d6ea238dd9e5888609ce5507401;hpb=a6c3e3a3d04f379b1480c8c88a8eae17e54b1449;p=m6w6%2Flibmemcached diff --git a/docs/memcached_cas.rst b/docs/memcached_cas.rst index 9d2188a6..a796f303 100644 --- a/docs/memcached_cas.rst +++ b/docs/memcached_cas.rst @@ -12,9 +12,9 @@ SYNOPSIS #include -.. c:function:: memcached_return_t memcached_cas(memcached_st *ptr, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags, uint64_t cas); +.. c:function:: memcached_return_t memcached_cas(memcached_st *ptr, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags, uint64_t cas) -.. c:function:: 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 expiration, uint32_t flags, uint64_t cas); +.. c:function:: 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 expiration, uint32_t flags, uint64_t cas) Compile and link with -lmemcached @@ -23,33 +23,30 @@ Compile and link with -lmemcached DESCRIPTION ----------- -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 depending 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 \ ``MEMCACHED_WRITE_FAILURE``\ -will be returned. +:c:func:`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 :c:func:`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 +:c:func:`memcached_set` for information on how to do this. + +:c:func:`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. + +:c:func:`memcached_cas` is testsed with the :c:type:`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, +:c:type:`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 depending 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 :c:type:`MEMCACHED_WRITE_FAILURE` will be returned. ------ @@ -57,9 +54,10 @@ RETURN ------ -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. +All methods return a value of type :c:type:`memcached_return_t`. +On success the value will be :c:type:`MEMCACHED_SUCCESS`. +Use :c:func:`memcached_strerror` to translate this value to a printable +string. ---- @@ -76,5 +74,5 @@ SEE ALSO -------- -memcached(1) libmemached(3) memcached_strerror(3) memcached_set(3) memcached_append(3) memcached_add(3) memcached_prepend(3) memcached_replace(3) +:manpage:`memcached(1)` :manpage:`libmemached(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_set(3)` :manpage:`memcached_append(3)` :manpage:`memcached_add(3)` :manpage:`memcached_prepend(3)` :manpage:`memcached_replace(3)`