MEMCACHED_STAT_EXECUTE(3)
π NAME π
memcached_stat_execute β libmemcached Documentation, bestie. We're getting memcached statistics up in here. periodt.
This is the MEMCACHED_STAT_EXECUTE(3) page from libmemcached-awesome, and no cap, it's the whole stat-querying family in one place. π
β¨ 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)
Okay so that callback has a whole lil param list, let's do a vibe check on each one π¦:
serverβ pointer to thememcached_instance_stbeing stat'edkeyβ the current keykey_lengthβ the length of the key without any terminating zerovalueβ the value readvalue_lengthβ the length of the value without any terminating zerocontextβ pointer to the user supplied context- Returns β
memcached_return_tindicating success
memcached_stat_st *memcached_stat(memcached_st *ptr, char *args,
memcached_return_t *error)
Parameters π
ptr-- pointer to an initializedmemcached_ststructargs-- particular state object to queryerror-- pointer tomemcached_return_tindicating success
Returns β array of memcached_stat_st objects for all available servers (slay)
memcached_return_t memcached_stat_servername(memcached_stat_st *stat,
char *args, const char *hostname, in_port_t port)
Parameters πΈ
stat-- pointer to amemcached_stat_ststruct to fillargs-- particular state object to queryhostname-- the hostname or IP address of the server to statport-- 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 initializedmemcached_ststructstat-- pointer to initializedmemcached_stat_ststructkey-- the statistic to queryerror-- pointer tomemcached_return_tindicating 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 initializedmemcached_ststructstat-- pointer to initializedmemcached_stat_ststructerror-- pointer tomemcached_return_tindicating 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 initializedmemcached_ststructargs-- particular state object to queryfunc--memcached_stat_fncallbackcontext-- pointer to user supplied context
Returns β memcached_return_t indication success
π DESCRIPTION π
Okay so libmemcached can literally go ask a memcached(1) server β or a whole collection of servers β what its current state is. Queries to find state return a memcached_stat_st structure. And bestie, you are responsible for freeing this structure. Like, the way that memory is yours to clean upβ¦ nobody's coming to do it for you. π
While it is technically possible to access the structure directly, it is not advisable. memcached_stat_get_value() has been provided to query the structure, so use that instead, okay? π«Ά
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. (yes bestie, every single pair, hold onto your wig)
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. β οΈ Heads up though: 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. So like, UDP said "not today." π
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 lowkey important: a list of these are not provided for by either the memcached_stat_get_keys() call nor are they defined in the memcached protocol. So you can't just look them up, iykyk. 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, fr fr.
memcached_stat_get_keys() returns a list of keys that the server has state objects on. You are responsible for freeing this list too. π§
And!! A command line tool, memstat, is provided so that you do not have to write an application to do this. Iconic behavior, honestly. We love a shortcut. β¨
π RETURN VALUE π
Varies, see particular functions. (mysterious, we know)
Any method returning a memcached_stat_st expects you to free the memory allocated for it. Not me reminding you a third timeβ¦ okay maybe it's a fourth. Free it bestie. π
π SEE ALSO π
libmemcached-awesome Β· version 1.1 Β· Jul 24, 2025 Β· go query those stats and slay the day, bestie π¦πβ¨
π¦ 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