MEMCACHED_SERVER_PUSH(3)
π NAME π
memcached_server_push β libmemcached Documentation π
okay so bestie, quick vibe check: this is page 3 of the libmemcached-awesome manual, and it's literally the group chat where you manage your whole server list. adding servers, counting servers, peeking at servers, sliding callbacks across servers. we do it all here. π¦
β¨ SYNOPSIS β¨
First things first, you gotta pull the header in, no cap:
#include <libmemcached/memcached.h>
and then compile and link with -lmemcached β that's the whole deal, that's the ritual π«Ά
π uint32_t memcached_server_count(memcached_st *ptr)
Parameters
- ptr β pointer to initialized
memcached_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 initialized
memcached_ststruct - hostname β hostname or IP address of the TCP server to add
- port β port of the TCP server
Returns
memcached_return_t indicating success β¨
πΈ memcached_return_t memcached_server_add_udp(memcached_st *ptr, const char *hostname, in_port_t port)
Parameters
- ptr β pointer to initialized
memcached_ststruct - hostname β hostname or IP address of the UDP server to add
- port β port of the UDP server
Returns
memcached_return_t indicating success β¨
π§ memcached_return_t memcached_server_add_unix_socket(memcached_st *ptr, const char *socket)
Parameters
- ptr β pointer to initialized
memcached_ststruct - socket β path to the UNIX socket of the server to add
Returns
memcached_return_t indicating success β¨
π memcached_return_t memcached_server_push(memcached_st *ptr, const memcached_server_st *list)
Parameters
- ptr β pointer to initialized
memcached_ststruct - list β pre-configured list of servers to push
Returns
memcached_return_t indicating 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 initialized
memcached_ststruct - key β key to hash and lookup a server
- key_length β length of key without any terminating zero
- error β pointer to
memcached_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 initialized
memcached_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 initialized
memcached_ststruct - callback β list of
memcached_server_fnto be called for each server instance - context β pointer to user supplied context for the callback
- number_of_callbacks β number of callbacks supplied
Returns
memcached_return_t indicating success β¨
π¦ 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 here's the tea, bestie: libmemcached is out here performing operations on a whole list of hosts, and the order of those hosts is literally what determines routing to keys. that's the main character mechanic. functions are provided to add keys to memcached_st structures. and if you wanna manipulate lists of servers, you go see memcached_server_st. iykyk π«Ά
memcached_server_count() gives you a count of the current number of servers being used by a memcached_st structure. simple. iconic. no notes.
memcached_server_add() pushes a single TCP server into the memcached_st structure. this server will be placed at the end. duplicate servers are allowed, so duplication is not checked β the library is not gonna be your accountability buddy here π. 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. yeah it's the mirror-image of the last one, they're giving opposites-attract energy π
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 the length of the filename must be one character less than MEMCACHED_MAX_HOST_LENGTH. that's the rule, periodt.
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. your original list is safe, it's not catching strays π
memcached_server_by_key() allows you to provide a key and retrieve the server which would be used for assignment. it's giving "who's the chosen one for this key" energy π₯
memcached_server_get_last_disconnect() returns a pointer to the last server for which there was a connection problem. and lowkey important: 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. prime suspect behavior, not a conviction β
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. so it's the real thing, not a copy, no substitutes π
π RETURN VALUE π
Varies, see particular functions. (yes that's the whole answer, it's giving "read the room" but fr fr, each function's Returns section above has the details π
π SEE ALSO π
and that's the whole page, bestie!! you just read version 1.1 of this manual page, dated Jul 24, 2025, from the libmemcached-awesome collection β go forth and push some servers πβ¨ππ¦πΈπ
π«Ά
π¦ 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