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 initialized memcached_st struct

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 initialized memcached_st struct
  • hostname โ€” hostname or IP address of the TCP server to add
  • port โ€” 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 initialized memcached_st struct
  • hostname โ€” hostname or IP address of the UDP server to add
  • port โ€” 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 initialized memcached_st struct
  • socket โ€” 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 initialized memcached_st struct
  • list โ€” 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 initialized memcached_st struct
  • key โ€” key to hash and lookup a server
  • key_length โ€” length of key without any terminating zero
  • error โ€” pointer to memcached_return_t indicating 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 initialized memcached_st struct

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 initialized memcached_st struct
  • callback โ€” list of memcached_server_fn to 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

๐ŸŒˆ 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