The set related functions within
          libmemcached provide the same functionality
          as the core functions supported by the
          memcached protocol. The full definition for
          the different functions is the same for all the base functions
          (add, replace, prepend, append). For example, the function
          definition for memcached_set() is:
        
memcached_return
           memcached_set (memcached_st *ptr,
                          const char *key,
                          size_t key_length,
                          const char *value,
                          size_t value_length,
                          time_t expiration,
                          uint32_t flags);
          The ptr is the
          memcached_st structure. The
          key and key_length
          define the key name and length, and value
          and value_length the corresponding value
          and length. You can also set the expiration and optional
          flags. For more information, see
          Section 4.3.1.5, “libmemcached Behaviors”.
        
The following table outlines the remainder of the set-related functions.
| libmemcachedFunction | Equivalent to | 
|---|---|
| memcached_set(memc, key, key_length, value, value_length,
                  expiration, flags) | Generic set()operation. | 
| memcached_add(memc, key, key_length, value, value_length,
                  expiration, flags) | Generic add()function. | 
| memcached_replace(memc, key, key_length, value, value_length,
                  expiration, flags) | Generic replace(). | 
| memcached_prepend(memc, key, key_length, value, value_length,
                  expiration, flags) | Prepends the specified valuebefore the current value
                  of the specifiedkey. | 
| memcached_append(memc, key, key_length, value, value_length,
                  expiration, flags) | Appends the specified valueafter the current value
                  of the specifiedkey. | 
| memcached_cas(memc, key, key_length, value, value_length,
                  expiration, flags, cas) | Overwrites the data for a given key as long as the corresponding casvalue is still the same within
                  the server. | 
| memcached_set_by_key(memc, master_key, master_key_length, key,
                  key_length, value, value_length, expiration,
                  flags) | Similar to the generic set(), but has the option of
                  an additional master key that can be used to identify
                  an individual server. | 
| memcached_add_by_key(memc, master_key, master_key_length, key,
                  key_length, value, value_length, expiration,
                  flags) | Similar to the generic add(), but has the option of
                  an additional master key that can be used to identify
                  an individual server. | 
| memcached_replace_by_key(memc, master_key, master_key_length,
                  key, key_length, value, value_length, expiration,
                  flags) | Similar to the generic replace(), but has the option
                  of an additional master key that can be used to
                  identify an individual server. | 
| memcached_prepend_by_key(memc, master_key, master_key_length,
                  key, key_length, value, value_length, expiration,
                  flags) | Similar to the memcached_prepend(), but has the
                  option of an additional master key that can be used to
                  identify an individual server. | 
| memcached_append_by_key(memc, master_key, master_key_length,
                  key, key_length, value, value_length, expiration,
                  flags) | Similar to the memcached_append(), but has the option
                  of an additional master key that can be used to
                  identify an individual server. | 
| memcached_cas_by_key(memc, master_key, master_key_length, key,
                  key_length, value, value_length, expiration,
                  flags) | Similar to the memcached_cas(), but has the option of
                  an additional master key that can be used to identify
                  an individual server. | 
          The by_key methods add two further
          arguments, the master key, to be used and applied during the
          hashing stage for selecting the servers. You can see this in
          the following definition:
        
memcached_return
           memcached_set_by_key(memcached_st *ptr,
                                const char *master_key,
                                size_t master_key_length,
                                const char *key,
                                size_t key_length,
                                const char *value,
                                size_t value_length,
                                time_t expiration,
                                uint32_t flags);
          All the functions return a value of type
          memcached_return, which you can compare
          against the MEMCACHED_SUCCESS constant.
        

