# Update expiration on a key

## SYNOPSIS

#include <libmemcached/memcached.h>

  Compile and link with -lmemcached

memcached_return_t memcached_touch(memcached_st *ptr, const char *key, size_t key_length, time_t expiration)
  Parameters:

    - ptr -- pointer to initialized `memcached_st` struct

    - key -- the key to touch

    - key_length -- the length of `key` without any terminating zero

    - expiration -- new expiration as a unix timestamp or as relative expiration time in seconds

  Returns:

    `memcached_return_t` indicating success

memcached_return_t memcached_touch_by_key(memcached_st *ptr, const char *group_key, size_t group_key_length, const char *key, size_t key_length, time_t expiration)
  Parameters:

    - ptr -- pointer to initialized `memcached_st` struct

    - group_key -- the `key` namespace

    - group_key_length -- the length of `group_key` without any terminating zero

    - key -- the key to touch

    - key_length -- the length of `key` without any terminating zero

    - expiration -- new expiration as a unix timestamp or as relative expiration time in seconds

  Returns:

    `memcached_return_t` indicating success

## DESCRIPTION

`memcached_touch()` is used to update the expiration time on an existing key. `memcached_touch_by_key()` works the same, but it takes a master key to find the given value.

## 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)

- C/C++ Client Library for memcached

- Converting Error Codes to Messages