MEMCACHED_SERVERS(3)
π MEMCACHED_SERVERS π
okay bestie, gather round, we're doing the libmemcached server-management page, from the libmemcached-awesome era. yes it's a C library. no you cannot escape. let's go π¦
β¨ NAME β¨
memcached_servers β libmemcached Documentation
πΈ SYNOPSIS πΈ
#include <libmemcached/memcached.h>
Compile and link with -lmemcached
so here's the whole squad of functions, one by one. don't scroll too fast, they all have lore π
uint32_t memcached_server_count(memcached_st *ptr)
Parameters
ptrβ pointer to initializedmemcached_ststruct
Returns
- number of configured servers
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_tindicating success
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_tindicating success
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_tindicating success
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_tindicating success
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
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_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_tindicating success
and the callback type itself, iconic, no notes:
typedef memcached_return_t (*memcached_server_fn)(const memcached_st *ptr, const memcached_instance_st *server, void *context)
- Param
ptrβ pointer to thememcached_ststruct - Param
serverβ pointer tomemcached_instance_st - Param
contextβ pointer to user supplied context - Returns β
memcached_return_tindicating success
π DESCRIPTION π
so the whole vibe: libmemcached does its operations on a list of hosts. the order of those hosts is literally what decides routing to keys, so like, the lineup matters bestie. there are functions to add keys to memcached_st structures. and if you wanna manipulate lists of servers, that's a whole other page β go see memcached_server_st.
memcached_server_count() gives you a count of the current number of servers being used by a memcached_st structure. headcount, basically. π
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, you can be messy, nobody's stopping you. 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 gets 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. yes it's the mirror image of the last one. they're twins. πͺ
memcached_server_add_unix_socket() pushes a single UNIX socket into the memcached_st structure. this UNIX socket gets placed at the end. duplicate servers are allowed, so duplication is not checked. the length of the filename must be one character less than MEMCACHED_MAX_HOST_LENGTH β one. character. less. count carefully bestie. π
memcached_server_push() pushes an array of memcached_server_st into the memcached_st structure. these servers get placed at the end. duplicate servers are allowed, so duplication is not checked. a copy is made of structure so the list provided (and any operations on the list) are not saved β so like, edit away, the original is untouched, it's giving photocopy energy π«Ά
memcached_server_by_key() lets you hand over a key and get back the server which would be used for assignment. "which server would get this key?" answered, instantly, slay.
memcached_server_get_last_disconnect() returns a pointer to the last server for which there was a connection problem. it does not mean this particular server is currently dead β but if the library is reporting a server is, the returned server is a very good candidate. very demure, very "probably them". π
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 β one bad callback ends the whole party π. memcached_server_cursor() is passed the original caller memcached_st in its current state.
π RETURN VALUE π
Varies, see particular functions. (mysterious. vague. main character energy. scroll back up and check the one you actually care about, bestie π)
β SEE ALSO β
memcached(1) libmemcached(3) memcached_server_st(3) β memcached_strerror(3)
π fr fr, that's the whole page. server list go brrr.
this was libmemcached-awesome, version 1.1, dated Jul 24, 2025 β stay slaying, MEMCACHED_SERVERS(3) out πβ¨
π¦ 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