MEMCACHED_S...UNIX_SOCKET(3)
๐ธ NAME ๐ธ
okay so bestie, this page is memcached_server_add_unix_socket โ straight out of the libmemcached-awesome docs, filed under the MEMCACHED_S...UNIX_SOCKET(3) manual ๐
. It's the whole girl-gang of server-management functions: adding servers, counting servers, finding servers, looping over servers. Server management core, no cap.
โจ SYNOPSIS โจ
#include <libmemcached/memcached.h>
Compile and link with -lmemcached ๐ซถ
๐ memcached_server_count
uint32_t memcached_server_count(memcached_st *ptr)
Parameters
ptrโ pointer to initializedmemcached_ststruct
Returns
number of configured servers
๐ memcached_server_add
memcached_return_t memcached_server_add(memcached_st *ptr, const char *hostname, in_port_t port)
Parameters
ptrโ pointer to initializedmemcached_ststructhostnameโ hostname or IP address of the TCP server to addportโ port of the TCP server
Returns
memcached_return_t indicating success
๐ memcached_server_add_udp
memcached_return_t memcached_server_add_udp(memcached_st *ptr, const char *hostname, in_port_t port)
Parameters
ptrโ pointer to initializedmemcached_ststructhostnameโ hostname or IP address of the UDP server to addportโ port of the UDP server
Returns
memcached_return_t indicating success
๐ memcached_server_add_unix_socket
memcached_return_t memcached_server_add_unix_socket(memcached_st *ptr, const char *socket)
Parameters
ptrโ pointer to initializedmemcached_ststructsocketโ path to the UNIX socket of the server to add
Returns
memcached_return_t indicating success
๐ memcached_server_push
memcached_return_t memcached_server_push(memcached_st *ptr, const memcached_server_st *list)
Parameters
ptrโ pointer to initializedmemcached_ststructlistโ pre-configured list of servers to push
Returns
memcached_return_t indicating success
๐ memcached_server_by_key
const memcached_instance_st *memcached_server_by_key(memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error)
Parameters
ptrโ pointer to initializedmemcached_ststructkeyโ key to hash and lookup a serverkey_lengthโ length of key without any terminating zeroerrorโ pointer tomemcached_return_tindicating success
Returns
the server instance to be used for storing/retrieving key
๐ memcached_server_get_last_disconnect
const memcached_instance_st *memcached_server_get_last_disconnect(const memcached_st *ptr)
Parameters
ptrโ pointer to initializedmemcached_ststruct
Returns
the instance of the last server for which there was a connection problem
๐ memcached_server_cursor
memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks)
Parameters
ptrโ pointer to initializedmemcached_ststructcallbackโ list ofmemcached_server_fnto be called for each server instancecontextโ pointer to user supplied context for the callbacknumber_of_callbacksโ number of callbacks supplied
Returns
memcached_return_t indicating success
๐ memcached_server_fn (the typedef, she's iconic)
typedef memcached_return_t (*memcached_server_fn)(const memcached_st *ptr, const memcached_instance_st *server, void *context)
Param ptr
pointer to the memcached_st struct
Param server
pointer to memcached_instance_st
Param context
pointer to user supplied context
Returns
memcached_return_t indicating success
๐ฆ DESCRIPTION ๐ฆ
So, libmemcached does its little operations on a list of hosts. And the order of those hosts? Yeah, that literally determines the routing to keys ๐. There are functions provided to add keys to memcached_st structures. And if you wanna manipulate lists of servers, go look at memcached_server_st ๐
memcached_server_count() hands you a count of the current number of servers being used by a memcached_st structure. Just the number, bestie, no drama โจ
memcached_server_add() pushes a single TCP server into the memcached_st structure. This server gets placed at the end. Duplicate servers are allowed, so duplication is not checked (yes, she'll let you add the same host twice, it's giving chaos but okay ๐). Executing this function with the MEMCACHED_BEHAVIOR_USE_UDP behavior set will result in a MEMCACHED_INVALID_HOST_PROTOCOL.
memcached_server_add_udp() pushes a single UDP server into the memcached_st structure. This server will be placed at the end. Duplicate servers are allowed, so duplication is not checked. Executing this function without setting the MEMCACHED_BEHAVIOR_USE_UDP behavior will result in a MEMCACHED_INVALID_HOST_PROTOCOL.
memcached_server_add_unix_socket() pushes a single UNIX socket into the memcached_st structure. This UNIX socket will be placed at the end. Duplicate servers are allowed, so duplication is not checked. And heads up: the length of the filename must be one character less than MEMCACHED_MAX_HOST_LENGTH. One. Character. Less. Not negotiable ๐
memcached_server_push() pushes an array of memcached_server_st into the memcached_st structure. These servers will be placed at the end. Duplicate servers are allowed, so duplication is not checked. A copy is made of the structure so the list provided (and any operations on the list) are not saved โ so like, your list stays yours, it's not getting possessed by the library ๐ซถ
memcached_server_by_key() lets you hand over a key and get back the server which would be used for assignment. Very "which one of you is getting this key" energy ๐ฎ
memcached_server_get_last_disconnect() returns a pointer to the last server for which there was a connection problem. Important: it does not mean this particular server is currently dead ๐ญ โ but if the library is reporting a server is dead, the returned server is a very good candidate. Suspect number one, basically ๐ต๏ธ
memcached_server_cursor() takes a memcached_st and loops through the list of hosts currently in the cursor, calling the list of callback functions provided. You can optionally pass in a value via context which will be provided to each callback function. An error return from any callback will terminate the loop. And memcached_server_cursor() is passed the original caller memcached_st in its current state.
๐ RETURN VALUE ๐
Varies, see particular functions. (Yeah, she's mysterious like that. Each function has its own receipts in the SYNOPSIS above, iykyk ๐ )
๐ SEE ALSO ๐
and that's the whole page, bestie ๐ that was libmemcached-awesome, version 1.1, dated Jul 24, 2025 โ go add some servers, you're gonna slay ๐โจ
๐ฆ where this page comes from
- fedora 43: libmemcached-awesome-devel 1.1.4-7.fc43 ยท BSD-3-Clause
- fedora 43: libmemcached-awesome-devel 1.1.4-7.fc43 ยท BSD-3-Clause
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms