MEMCACHED_STAT_GET_VALUE(3)

πŸ’– MEMCACHED_STAT_GET_VALUE πŸ’–

okay bestie, welcome to libmemcached-awesome's little corner of the manual, page MEMCACHED_STAT_GET_VALUE(3) β€” this one is all about peeking at what your memcached servers are up to, and it's giving very demure, very stats. grab a strawberry πŸ“ and let's get into it.


✨ NAME ✨

memcached_stat_get_value β€” libmemcached Documentation

Get memcached statistics. yes that's the whole vibe. πŸ’…


✨ SYNOPSIS ✨

#include <libmemcached/memcached.h>

Compile and link with -lmemcached 🫢

typedef struct memcached_stat_st memcached_stat_st

typedef memcached_return_t (*memcached_stat_fn)(const
memcached_instance_st *server, const char *key, size_t key_length, const
char *value, size_t value_length, void *context)

So this callback type, memcached_stat_fn, takes these:

  • Param server β€” pointer to the memcached_instance_st being stat'ed
  • Param key β€” the current key
  • Param key_length β€” the length of the key without any terminating zero
  • Param value β€” the value read
  • Param value_length β€” the length of the value without any terminating zero
  • Param context β€” pointer to the user supplied context
  • Returns β€” memcached_return_t indicating success
memcached_stat_st *memcached_stat(memcached_st *ptr, char *args,
memcached_return_t *error)

Parameters, bestie:

  • ptr β€” pointer to an initialized memcached_st struct
  • args β€” particular state object to query
  • error β€” pointer to memcached_return_t indicating success

Returns β€” array of memcached_stat_st objects for all available servers 🌈

memcached_return_t memcached_stat_servername(memcached_stat_st *stat,
char *args, const char *hostname, in_port_t port)

Parameters:

  • stat β€” pointer to a memcached_stat_st struct to fill
  • args β€” particular state object to query
  • hostname β€” the hostname or IP address of the server to stat
  • port β€” the port of the server to stat

Returns β€” memcached_return_t indicating success ✨

char *memcached_stat_get_value(memcached_st *ptr, memcached_stat_st
*stat, const char *key, memcached_return_t *error)

Parameters:

  • ptr β€” pointer to initialized memcached_st struct
  • stat β€” pointer to initialized memcached_stat_st struct
  • key β€” the statistic to query
  • error β€” pointer to memcached_return_t indicating success

Returns β€” string value of the statistic πŸŽ€

char **memcached_stat_get_keys(memcached_st *ptr, memcached_stat_st
*stat, memcached_return_t *error)

Parameters:

  • ptr β€” pointer to initialized memcached_st struct
  • stat β€” pointer to initialized memcached_stat_st struct
  • error β€” pointer to memcached_return_t indicating success

Returns β€” array of default keys probably available in the statistics πŸ‘‘

memcached_return_t memcached_stat_execute(memcached_st *ptr, const char
*args, memcached_stat_fn func, void *context)

Parameters:

  • ptr β€” pointer to initialized memcached_st struct
  • args β€” particular state object to query
  • func β€” memcached_stat_fn callback
  • context β€” pointer to user supplied context

Returns β€” memcached_return_t indication success πŸ’œ


✨ DESCRIPTION ✨

libmemcached has the ability to query a memcached(1) server (or, like, a whole collection of servers, the more the merrier πŸ¦‹) for their current state. Queries to find state return a memcached_stat_st structure. and guess what β€” you are responsible for freeing this structure. not us. you. 😭

While it is possible to access the structure directly, it is not advisable β€” lowkey don't do it. memcached_stat_get_value() has been provided to query the structure instead. use the nice function, bestie.

memcached_stat_execute() uses the servers found in memcached_stat_st and executes a "stat" command on each server. args is an optional argument that can be passed in to modify the behavior of "stats". You will need to supply a callback function that will be supplied each pair of values returned by the memcached server. it's giving ✨event-driven✨.

memcached_stat() fetches an array of memcached_stat_st structures containing the state of all available memcached servers. The return value must be freed by the calling application. And heads up: if called with the MEMCACHED_BEHAVIOR_USE_UDP behavior set, a NULL value is returned and the error parameter is set to MEMCACHED_NOT_SUPPORTED. no UDP stats for you, sorry not sorry πŸ’€

memcached_stat_servername() can be used standalone without a memcached_st to obtain the state of a particular server. "args" is used to define a particular state object β€” and psst, a list of these is not provided for by either the memcached_stat_get_keys() call nor are they defined in the memcached protocol, so you're kinda on your own there πŸ™ˆ. You must specify the hostname and port of the server you want to obtain information on.

memcached_stat_get_value() returns the value of a particular state key. You specify the key you wish to obtain. The key must be null terminated. periodt.

memcached_stat_get_keys() returns a list of keys that the server has state objects on. and yep β€” you are responsible for freeing this list. again. 🫠

A command line tool, memstat, is provided so that you do not have to write an application to do this. iconic behavior honestly πŸ‘‘


✨ RETURN VALUE ✨

Varies, see particular functions. very "it depends" of them, ngl.

Any method returning a memcached_stat_st expects you to free the memory allocated for it. we said it once and we'll say it again πŸ’…


✨ SEE ALSO ✨

memcached(1) libmemcached(3) memcached_strerror(3)


and that's the whole page, bestie πŸŽ€ go stat something cute. this was libmemcached-awesome, version 1.1, dated Jul 24, 2025 β€” mwah, take care of yourself and free your memory πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from