MEMCACHED_D...ITH_INITIAL(3)
β¨ NAME β¨
memcached_decrement_with_initial β bestie, this is your all-in-one glow-up page for Incrementing and Decrementing Values π
This one lives in the libmemcached-awesome manual, section 3 (library calls, iykyk).
πΈ SYNOPSIS πΈ
#include <libmemcached/memcached.h>
Compile and link with -lmemcached
okay so here's the whole friend group, all together:
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
like, every single one, no skipping π
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 π
so memcached(1) servers literally have the ability to increment and decrement keys (and bestie, heads up: overflow and underflow are not detected π). which is iconic actually, because it gives you the ability to use memcached to generate shared sequences of values. main character behaviour fr fr.
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. slay. β¨
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 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. And ngl, memcached_increment_with_initial is only available when using the binary protocol. π
memcached_decrement_with_initial() takes a key and key_length and decrements the value by the offset passed to it. Same deal as above: 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 literally same caveat: memcached_decrement_with_initial() is only available when using the binary protocol. π«Ά
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 whole squad, matched. π
β 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 π
memcached(1) libmemcached(3) memcached_strerror(3)
and that's the page bestie!! π version 1.1, dated Jul 24, 2025, brought to you by the libmemcached-awesome girlies β go forth and increment responsibly, ily ππ β¨
π¦ 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