=head1 NAME
-memcached_set, memcached_add, memcached_replace
+memcached_set, memcached_add, memcached_replace - Store value on server
=head1 LIBRARY
memcached_return
memcached_set (memcached_st *ptr,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags);
+ uint32_t flags);
memcached_return
memcached_add (memcached_st *ptr,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags);
+ uint32_t flags);
memcached_return
memcached_replace (memcached_st *ptr,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags);
+ uint32_t flags);
memcached_return
memcached_prepend(memcached_st *ptr,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags)
+ uint32_t flags)
memcached_return
memcached_append(memcached_st *ptr,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags)
+ uint32_t flags)
memcached_return
memcached_cas(memcached_st *ptr,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags,
+ uint32_t flags,
uint64_t cas);
memcached_return
memcached_set_by_key(memcached_st *ptr,
- char *master_key, size_t master_key_length,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *master_key, size_t master_key_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags);
+ uint32_t flags);
memcached_return
memcached_add_by_key(memcached_st *ptr,
- char *master_key, size_t master_key_length,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *master_key, size_t master_key_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags);
+ uint32_t flags);
memcached_return
memcached_replace_by_key(memcached_st *ptr,
- char *master_key, size_t master_key_length,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *master_key, size_t master_key_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags);
+ uint32_t flags);
memcached_return
memcached_prepend_by_key(memcached_st *ptr,
- char *master_key, size_t master_key_length,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *master_key, size_t master_key_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags);
+ uint32_t flags);
memcached_return
memcached_append_by_key(memcached_st *ptr,
- char *master_key, size_t master_key_length,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *master_key, size_t master_key_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags);
+ uint32_t flags);
memcached_return
memcached_cas_by_key(memcached_st *ptr,
- char *master_key, size_t master_key_length,
- char *key, size_t key_length,
- char *value, size_t value_length,
+ const char *master_key, size_t master_key_length,
+ const char *key, size_t key_length,
+ const char *value, size_t value_length,
time_t expiration,
- uint16_t flags,
+ uint32_t flags,
uint64_t cas);
=head1 DESCRIPTION
If you are looking for performance, memcached_set() with non-blocking IO is
the fastest way to store data on the server.
+All of the above functions are supported with the C<MEMCACHED_BEHAVIOR_USE_UDP>
+behavior enabled. But 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 Memcahed 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< 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<MEMCACHED_WRITE_FAILURE>
+will be returned.
+
+
=head1 RETURN
All methods return a value of type C<memcached_return>.