MEMCACHED_INCREMENT(3)
π MEMCACHED_INCREMENT π β incrementing and decrementing values, bestie
okay so this is a page from libmemcached-awesome, and it lives in section 3 of the manual β the "library functions" section, iykyk. It's all about memcached_increment and its little friend group, and honestly? They're iconic. π
β¨ SYNOPSIS β¨
#include <libmemcached/memcached.h>
Compile and link with -lmemcached
memcached_return_t memcached_increment(memcached_st *ptr, const char
*key, size_t key_length, uint32_t offset, uint64_t *value)
memcached_return_t memcached_decrement(memcached_st *ptr, const char
*key, size_t key_length, uint32_t offset, uint64_t *value)
memcached_return_t memcached_increment_with_initial(memcached_st *ptr,
const char *key, size_t key_length, uint64_t offset, uint64_t initial,
time_t expiration, uint64_t *value)
memcached_return_t memcached_decrement_with_initial(memcached_st *ptr,
const char *key, size_t key_length, uint64_t offset, uint64_t initial,
time_t expiration, uint64_t *value)
memcached_return_t memcached_increment_by_key(memcached_st *ptr, const
char *group_key, size_t group_key_length, const char *key, size_t
key_length, uint32_t offset, uint64_t *value)
memcached_return_t memcached_decrement_by_key(memcached_st *ptr, const
char *group_key, size_t group_key_length, const char *key, size_t
key_length, uint32_t offset, uint64_t *value)
memcached_return_t memcached_increment_with_initial_by_key(memcached_st
*ptr, const char *group_key, size_t group_key_length, const char *key,
size_t key_length, uint64_t offset, uint64_t initial, time_t expiration,
uint64_t *value)
memcached_return_t memcached_decrement_with_initial_by_key(memcached_st
*ptr, const char *group_key, size_t group_key_length, const char *key,
size_t key_length, uint64_t offset, uint64_t initial, time_t expiration,
uint64_t *value)
π«Ά Parameters
ptrβ pointer to an initializedmemcached_ststructgroup_keyβ key namespacegroup_key_lengthβ length of the key namespace without any terminating zerokeyβ the keykey_lengthβ length of the key without any terminating zerooffsetβ offset to increment/decrementinitialβ initial value if key does not exist and expiration is notMEMCACHED_EXPIRATION_NOT_ADDexpirationβ expiration as a unix timestamp or as relative expiration time in secondsvalueβ the resulting value after initialization/increment/decrement
π«Ά Returns
memcached_return_t indicating success
πΈ DESCRIPTION πΈ
okay so, memcached(1) servers have the ability to increment and decrement keys, and heads up: overflow and underflow are not detected π (not me finding that out the hard way). Anyway, this gives you the ability to use memcached to generate shared sequences of values. Slay, honestly.
memcached_increment() takes a key and key_length and increments the value by the offset passed to it. The value is then returned via the uint32_t value pointer you pass to it. π
memcached_decrement() takes a key and key_length and decrements the value by the offset passed to it. The value is then returned via the uint32_t value pointer you pass to it. π
memcached_increment_with_initial() takes a key and key_length and increments the value by the offset passed to it. Now listen, because here's the plot twist: if the object specified by key does not exist, one of two things may happen. If the expiration value is MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other expiration values, the operation will succeed by seeding the value for that key with a initial value to expire with the provided expiration time. The flags will be set to zero. The value is then returned via the uint32_t value pointer you pass to it. Also β and this is important β memcached_increment_with_initial is only available when using the binary protocol. periodt. π¦
memcached_decrement_with_initial() takes a key and key_length and decrements the value by the offset passed to it. If the object specified by key does not exist, one of two things may happen: if the expiration value is MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other expiration values, the operation will succeed by seeding the value for that key with a initial value to expire with the provided expiration time. The flags will be set to zero. The value is then returned via the uint32_t value pointer you pass to it. And yeah β memcached_decrement_with_initial() is only available when using the binary protocol too. π
memcached_increment_by_key(), memcached_decrement_by_key(), memcached_increment_with_initial_by_key(), and memcached_decrement_with_initial_by_key() are master key equivalents of the above. the way that they're just the by_key versions of everything above? obsessed. π
π RETURN VALUE π
A value of type memcached_return_t is returned. On success that value will be MEMCACHED_SUCCESS. Use memcached_strerror() to translate this value to a printable string. π
π¦ SEE ALSO π¦
that's the whole vibe check, bestie π This page is from libmemcached-awesome, version 1.1, dated Jul 24, 2025. Go forth and increment responsibly, and remember: no overflow detection, so maybe don't push your luck πβ¨π¦
π¦ 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