---
name: "Memcached::libmemcached::memcached_servers"
section: "3pm"
platform: "linux"
package: "libmemcached-libmemcached-perl"
version: "1.001801+dfsg-5+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Memcached::libmemcached::memcached_servers"
---

# Memcached::libmemcached::memcached\_servers(3pm)

Manage server list

## NAME

memcached\_server\_count, memcached\_server\_list, memcached\_server\_add, memcached\_server\_push, memcached\_server\_get\_last\_disconnect, memcached\_server\_cursor - Manage server list

## LIBRARY

C Client Library for memcached (libmemcached, -lmemcached)

## SYNOPSIS

```
  #include <memcached.h>
  uint32_t memcached_server_count (memcached_st *ptr);
  memcached_return_t
    memcached_server_add (memcached_st *ptr,
                          const char *hostname,
                          in_port_t port);
  memcached_return_t
    memcached_server_add_udp (memcached_st *ptr,
                              const char *hostname,
                              in_port_t port);
  memcached_return_t
    memcached_server_add_unix_socket (memcached_st *ptr,
                                      const char *socket);
  memcached_return_t
    memcached_server_push (memcached_st *ptr,
                           const memcached_server_st *list);
  memcached_server_instance_st
    memcached_server_by_key (const memcached_st *ptr,
                             const char *key,
                             size_t key_length,
                             memcached_return_t *error);
  memcached_server_instance_st
    memcached_server_get_last_disconnect (const memcached_st *ptr)
  memcached_return_t
    memcached_server_cursor(const memcached_st *ptr,
                            const memcached_server_fn *callback,
                            void *context,
                            uint32_t number_of_callbacks);
```

## DESCRIPTION

[**libmemcached**(3)](/libmemcached/3.md) performs operations on a list of hosts. The order of these hosts determine routing to keys. Functions are provided to add keys to memcached\_st structures. To manipulate lists of servers see [**memcached\_server\_st**(3)](/memcached_server_st/3.md).

**memcached\_server\_count()** provides you a count of the current number of servers being used by a `"memcached_st"` structure.

**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. 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 with out 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. The length of the filename must be one character less then MEMCACHED\_MAX\_HOST\_LENGTH.

**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 structure so the list provided (and any operations on the list) are not saved.

**memcached\_server\_by\_key()** allows you to provide a key and retrieve the server which would be used for assignment. This structure is cloned from its original structure and must be freed. If NULL is returned you should consult \*error. The returning structure should be freed with **memcached\_server\_free()**.

**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.

**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. **memcached\_server\_cursor()** is passed the original caller memcached\_st in its current state.

## RETURN

Varies, see particular functions.

## HOME

To find out more information please check: \<https://launchpad.net/libmemcached\>

## AUTHOR

Brian Aker, \<brian@tangent.org\>

## SEE ALSO

[**memcached**(1)](/memcached/1.md) [**libmemcached**(3)](/libmemcached/3.md) [**memcached\_strerror**(3)](/memcached_strerror/3.md)
