# General information about the project.
project = u'libmemcached'
-copyright = u'2011, Brian Aker'
+copyright = u'2011, Brian Aker DataDifferential, http://datadifferential.com/'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
+ ('libhashkit', 'libhashkit', u'libhashkit Documentation', [u'Brian Aker'], 3),
('hashkit_create', 'hashkit_clone', u'libhashkit Documentation', [u'Brian Aker'], 3),
('hashkit_create', 'hashkit_create', u'libhashkit Documentation', [u'Brian Aker'], 3),
('hashkit_create', 'hashkit_free', u'libhashkit Documentation', [u'Brian Aker'], 3),
('memcp', 'memcp', u'libmemcached Documentation', [u'Brian Aker'], 1),
('memdump', 'memdump', u'libmemcached Documentation', [u'Brian Aker'], 1),
('memerror', 'memerror', u'libmemcached Documentation', [u'Brian Aker'], 1),
+ ('memaslap', 'memaslap', u'libmemcached Documentation', [u'Brian Aker'], 1),
('memflush', 'memflush', u'libmemcached Documentation', [u'Brian Aker'], 1),
('memrm', 'memrm', u'libmemcached Documentation', [u'Brian Aker'], 1),
('memslap', 'memslap', u'libmemcached Documentation', [u'Brian Aker'], 1),
-.. highlight:: perl
-
-
-hashkit_create, hashkit_clone, hashkit_free, hashkit_is_allocated
-*****************************************************************
+============================
+Creating a hashkit structure
+============================
Create and destroy hashkit objects
-*******
+-------
LIBRARY
-*******
+-------
-C Library for hashing algorithms (libhashkit, -lhashkit)
+C Library for hashing algorithms (libmemcached, -lhashkit)
-********
+--------
SYNOPSIS
-********
+--------
.. code-block:: perl
- #include <libhashkit/hashkit.h>
+ #include <libmemcached/hashkit.h>
hashkit_st *hashkit_create(hashkit_st *hash);
-***********
+-----------
DESCRIPTION
-***********
+-----------
The hashkit_create() function initializes a hashkit object for use. If
for a hashkit object.
-************
+------------
RETURN VALUE
-************
+------------
hashkit_create() and hashkit_clone() will return NULL on failure or
otherwise it is false and was user-supplied memory.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-
-
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-.. highlight:: perl
-
-
-hashkit_default, hashkit_fnv1_64, hashkit_fnv1a_64, hashkit_fnv1_32, hashkit_fnv1a_32, hashkit_crc32, hashkit_hsieh, hashkit_murmur, hashkit_jenkins, hashkit_md5
-*****************************************************************************************************************************************************************
+================
+Available Hashes
+================
Various hash functions to use for calculating values for keys
-*******
+-------
LIBRARY
-*******
+-------
-C Library for hashing algorithms (libhashkit, -lhashkit)
+C Library for hashing algorithms (libmemcached, -lhashkit)
-********
+--------
SYNOPSIS
-********
+--------
.. code-block:: perl
- #include <libhashkit/hashkit.h>
+ #include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
-***********
+-----------
DESCRIPTION
-***********
+-----------
These functions generate hash values from a key using a variety of
the appropriate flag enabled.
-************
+------------
RETURN VALUE
-************
+------------
A 32-bit hash value.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
SEE ALSO
-********
+--------
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
-.. highlight:: perl
-
-
+=============
hashkit_value
-*************
+=============
Generate a value for the given key
-*******
+-------
LIBRARY
-*******
+-------
-C Library for hashing algorithms (libhashkit, -lhashkit)
+C Library for hashing algorithms (libmemcached, -lhashkit)
-********
+--------
SYNOPSIS
-********
+--------
.. code-block:: perl
- #include <libhashkit/hashkit.h>
+ #include <libmemcached/hashkit.h>
uint32_t hashkit_value(hashkit_st *hash,
const char *key,
-***********
+-----------
DESCRIPTION
-***********
+-----------
The hashkit_value() function generates a 32-bit hash value from the
object while generating the value.
-************
+------------
RETURN VALUE
-************
+------------
A 32-bit hash value.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
SEE ALSO
-********
+--------
hashkit_create(3) hashkit_set_distribution(3) hashkit_set_hash_fn(3)
# All paths should be given relative to the root
EXTRA_DIST+= \
+ docs/_static \
+ docs/_templates \
+ docs/conf.py \
docs/hashkit_clone.rst \
docs/hashkit_crc32.rst \
docs/hashkit_create.rst \
docs/hashkit_murmur.rst \
docs/hashkit_value.rst \
docs/index.rst \
- docs/libmemcached_examples.rst \
+ docs/libhashkit.rst \
docs/libmemcached.rst \
+ docs/libmemcached_examples.rst \
docs/libmemcachedutil.rst \
- docs/memcached_add_by_key.rst \
+ docs/memaslap.rst \
docs/memcached_add.rst \
+ docs/memcached_add_by_key.rst \
docs/memcached_analyze.rst \
- docs/memcached_append_by_key.rst \
docs/memcached_append.rst \
+ docs/memcached_append_by_key.rst \
docs/memcached_auto.rst \
- docs/memcached_behavior_get.rst \
docs/memcached_behavior.rst \
+ docs/memcached_behavior_get.rst \
docs/memcached_behavior_set.rst \
- docs/memcached_callback_get.rst \
docs/memcached_callback.rst \
+ docs/memcached_callback_get.rst \
docs/memcached_callback_set.rst \
- docs/memcached_cas_by_key.rst \
docs/memcached_cas.rst \
+ docs/memcached_cas_by_key.rst \
docs/memcached_clone.rst \
docs/memcached_create.rst \
docs/memcached_decrement.rst \
docs/memcached_decrement_with_initial.rst \
- docs/memcached_delete_by_key.rst \
docs/memcached_delete.rst \
+ docs/memcached_delete_by_key.rst \
docs/memcached_destroy_sasl_auth_data.rst \
docs/memcached_dump.rst \
+ docs/memcached_fetch.rst \
docs/memcached_fetch_execute.rst \
docs/memcached_fetch_result.rst \
- docs/memcached_fetch.rst \
- docs/memcached_flush_buffers.rst \
docs/memcached_flush.rst \
+ docs/memcached_flush_buffers.rst \
docs/memcached_free.rst \
docs/memcached_generate_hash_value.rst \
+ docs/memcached_get.rst \
docs/memcached_get_by_key.rst \
docs/memcached_get_memory_allocators.rst \
- docs/memcached_get.rst \
docs/memcached_get_sasl_callbacks.rst \
docs/memcached_get_user_data.rst \
docs/memcached_increment.rst \
docs/memcached_increment_with_initial.rst \
docs/memcached_lib_version.rst \
docs/memcached_memory_allocators.rst \
+ docs/memcached_mget.rst \
docs/memcached_mget_by_key.rst \
- docs/memcached_mget_execute_by_key.rst \
docs/memcached_mget_execute.rst \
- docs/memcached_mget.rst \
+ docs/memcached_mget_execute_by_key.rst \
+ docs/memcached_pool.rst \
docs/memcached_pool_behavior_get.rst \
docs/memcached_pool_behavior_set.rst \
docs/memcached_pool_create.rst \
docs/memcached_pool_destroy.rst \
docs/memcached_pool_push.rst \
- docs/memcached_pool.rst \
docs/memcached_pool_rst.rst \
- docs/memcached_prepend_by_key.rst \
docs/memcached_prepend.rst \
+ docs/memcached_prepend_by_key.rst \
docs/memcached_quit.rst \
- docs/memcached_replace_by_key.rst \
docs/memcached_replace.rst \
+ docs/memcached_replace_by_key.rst \
docs/memcached_result_cas.rst \
docs/memcached_result_create.rst \
docs/memcached_result_flags.rst \
docs/memcached_server_add_unix_socket.rst \
docs/memcached_server_count.rst \
docs/memcached_server_cursor.rst \
+ docs/memcached_server_list.rst \
docs/memcached_server_list_append.rst \
docs/memcached_server_list_count.rst \
docs/memcached_server_list_free.rst \
- docs/memcached_server_list.rst \
docs/memcached_server_push.rst \
+ docs/memcached_server_st.rst \
+ docs/memcached_servers.rst \
docs/memcached_servers_parse.rst \
docs/memcached_servers_reset.rst \
- docs/memcached_servers.rst \
- docs/memcached_server_st.rst \
+ docs/memcached_set.rst \
docs/memcached_set_by_key.rst \
- docs/memcached_set_memory_allocators_context.rst \
docs/memcached_set_memory_allocators.rst \
- docs/memcached_set.rst \
+ docs/memcached_set_memory_allocators_context.rst \
docs/memcached_set_sasl_callbacks.rst \
docs/memcached_set_user_data.rst \
+ docs/memcached_stat.rst \
docs/memcached_stat_execute.rst \
docs/memcached_stat_get_keys.rst \
docs/memcached_stat_get_value.rst \
- docs/memcached_stat.rst \
docs/memcached_stat_servername.rst \
docs/memcached_stats.rst \
docs/memcached_strerror.rst \
docs/memflush.rst \
docs/memrm.rst \
docs/memslap.rst \
- docs/memstat.rst \
- docs/_static \
- docs/_templates \
- docs/conf.py \
- docs/libmemcached.rst \
- docs/libmemcached_examples.rst \
- docs/libmemcachedutil.rst \
- docs/memcached_analyze.rst \
- docs/memcached_dump.rst \
- docs/memcached_flush.rst \
- docs/memcached_flush_buffers.rst \
- docs/memcached_generate_hash_value.rst \
- docs/memcached_quit.rst \
- docs/memcached_strerror.rst \
- docs/memcached_verbosity.rst \
- docs/memcapable.rst \
- docs/memcat.rst \
- docs/memcp.rst \
- docs/memdump.rst \
- docs/memerror.rst \
- docs/memflush.rst \
- docs/memrm.rst \
- docs/memslap.rst \
docs/memstat.rst
# Makefile for Sphinx documentation
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
man_MANS+= \
- docs/man/hashkit_crc32.3 \
docs/man/hashkit_clone.3 \
+ docs/man/hashkit_crc32.3 \
docs/man/hashkit_create.3 \
docs/man/hashkit_fnv1_32.3 \
docs/man/hashkit_fnv1_64.3 \
docs/man/hashkit_md5.3 \
docs/man/hashkit_murmur.3 \
docs/man/hashkit_value.3 \
+ docs/man/libhashkit.3 \
docs/man/libmemcached.3 \
docs/man/libmemcached_examples.3 \
docs/man/libmemcachedutil.3 \
+ docs/man/memaslap.1 \
docs/man/memcached_add.3 \
docs/man/memcached_add_by_key.3 \
docs/man/memcached_analyze.3 \
-.. libmemcached documentation master file, created by
- sphinx-quickstart on Sun Mar 6 12:05:53 2011.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
+=========================================
+Welcome to the libmemcached documentation
+=========================================
-Welcome to libmemcached's documentation!
-========================================
-
-Contents:
+------------
+Libmemcached
+------------
.. toctree::
- :maxdepth: 2
+ :maxdepth: 1
- hashkit_create
- hashkit_functions
- hashkit_value
- libmemcached_examples
libmemcached
- libmemcachedutil
+ libmemcached_examples
+ libmemcached_configuration
memcached_analyze
memcached_auto
memcached_behavior
memcached_generate_hash_value
memcached_get
memcached_memory_allocators
- memcached_pool
memcached_quit
memcached_result_st
memcached_sasl
memcached_user_data
memcached_verbosity
memcached_version
+
+----------------
+Libmemcachedutil
+----------------
+
+.. toctree::
+ :maxdepth: 1
+
+ libmemcachedutil
+ memcached_pool
+
+-------------------
+Client Applications
+-------------------
+
+.. toctree::
+ :maxdepth: 1
+
memcapable
memcat
memcp
memflush
memrm
memslap
+ memaslap
memstat
+----------
+Libhashkit
+----------
+
+.. toctree::
+ :maxdepth: 1
+
+ libhashkit
+ hashkit_create
+ hashkit_functions
+ hashkit_value
+
Indices and tables
==================
--- /dev/null
+======================
+Introducing libhashkit
+======================
+
+
+-------
+LIBRARY
+-------
+
+
+C library collection of useful hashing algorithm (libhashkit, -lhashkit)
+
+
+--------
+SYNOPSIS
+--------
+
+
+.. code-block:: perl
+
+ cc [ flag ... ] file ... -lhashkit
+
+ #include <libhashkit/hashkit.h>
+
+
+
+-----------
+DESCRIPTION
+-----------
+
+
+\ **libhashkit**\ is a small and thread-safe client library that provides a collection of useful hashing algorithm. libhashkit is distributed with libmemcached.
+
+
+----
+HOME
+----
+
+
+To find out more information please check:
+`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
+
+
+--------
+SEE ALSO
+--------
+
+:manpage:`libmemcached(3)`
+
-.. highlight:: perl
-
-
-libmemcached
-************
+===========
+Introducing
+===========
Client library for memcached
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
"Memcached is a high-performance, distributed memory object caching
Nearly all functions return a \ ``memcached_return_t``\ value.
This value can be translated to a printable string with memcached_strerror(3).
-Partitioning based on keys is supported in the library. Using the key partioning
+Partitioning based on keys is testsed in the library. Using the key partioning
functions it is possible to group sets of object onto servers.
\ ``memcached_st``\ structures are thread-safe, but each thread must
used in this library.
If you are working with GNU autotools you will want to add the following to
-your configure.ac to properly include libmemcached in your application.
+your COPYING to properly include libmemcached in your application.
PKG_CHECK_MODULES(DEPS, libmemcached >= 0.8.0)
AC_SUBST(DEPS_CFLAGS)
Hope you enjoy it!
-*********
+---------
CONSTANTS
-*********
+---------
A number of constants have been provided for in the library.
-*********************
+---------------------
THREADS AND PROCESSES
-*********************
+---------------------
When using threads or forked processes it is important to keep an instance
structure.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached_examples(3) libmemcached(1) memcat(1) memcp(1) memflush(1) memrm(1) memslap(1) memstat(1) memcached_fetch(3) memcached_replace(3) memcached_server_list_free(3) libmemcached_examples(3) memcached_clone(3) memcached_free(3) memcached_server_add(3) memcached_server_push(3) memcached_add(3) memcached_get(3) memcached_server_count(3) memcached_servers_parse(3) memcached_create(3) memcached_increment(3) memcached_server_list(3) memcached_set(3) memcached_decrement(3) memcached_mget(3) memcached_server_list_append(3) memcached_strerror(3) memcached_delete(3) memcached_quit(3) memcached_server_list_count(3) memcached_verbosity(3) memcached_server_add_unix_socket(3) memcached_result_create(3) memcached_result_free(3) memcached_result_key_value(3) memcached_result_key_length(3) memcached_result_value(3) memcached_result_length(3) memcached_result_flags(3) memcached_result_cas(3) memcached_result_st(3) memcached_append(3) memcached_prepend(3) memcached_fetch_result(3) memerror(1) memcached_get_by_key(3) memcached_mget_by_key(3) memcached_delete_by_key(3) memcached_fetch_execute(3) memcached_callback_get(3) memcached_callback_set(3) memcached_version(3) memcached_lib_version(3) memcached_result_set_value(3) memcached_dump(3) memdump(1) memcached_set_memory_allocators(3) memcached_get_memory_allocators(3) memcached_get_user_data(3) memcached_set_user_data(3)
-
+--------
+
+
+:manpage:`memcached(1)` :manpage:`libmemcached_examples(3)` :manpage:`libmemcached(1)` :manpage:`memcat(1)` :manpage:`memcp(1)` :manpage:`memflush(1)` :manpage:`memrm(1)` :manpage:`memslap(1)` :manpage:`memstat(1)` :manpage:`memcached_fetch(3)` :manpage:`memcached_replace(3)` :manpage:`memcached_server_list_free(3)` :manpage:`libmemcached_examples(3)` :manpage:`memcached_clone(3)` :manpage:`memcached_free(3)`
+:manpage:`memcached_server_add(3)` :manpage:`memcached_server_push(3)` :manpage:`memcached_add(3)` :manpage:`memcached_get(3)` :manpage:`memcached_server_count(3)` :manpage:`memcached_servers_parse(3)` :manpage:`memcached_create(3)` :manpage:`memcached_increment(3)` :manpage:`memcached_server_list(3)` :manpage:`memcached_set(3)`
+:manpage:`memcached_decrement(3)` :manpage:`memcached_mget(3)` :manpage:`memcached_server_list_append(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_delete(3)` :manpage:`memcached_quit(3)` :manpage:`memcached_server_list_count(3)` :manpage:`memcached_verbosity(3)` :manpage:`memcached_server_add_unix_socket(3)` :manpage:`memcached_result_create(3)` :manpage:`memcached_result_free(3)`
+:manpage:`memcached_result_key_value(3)` :manpage:`memcached_result_key_length(3)` :manpage:`memcached_result_value(3)` :manpage:`memcached_result_length(3)` :manpage:`memcached_result_flags(3)`
+:manpage:`memcached_result_cas(3)` :manpage:`memcached_result_st(3)` :manpage:`memcached_append(3)` :manpage:`memcached_prepend(3)` :manpage:`memcached_fetch_result(3)`
+:manpage:`memerror(1)` :manpage:`memcached_get_by_key(3)` :manpage:`memcached_mget_by_key(3)` :manpage:`memcached_delete_by_key(3)`
+:manpage:`memcached_fetch_execute(3)` :manpage:`memcached_callback_get(3)` :manpage:`memcached_callback_set(3)` :manpage:`memcached_version(3)`
+:manpage:`memcached_lib_version(3)` :manpage:`memcached_result_set_value(3)` :manpage:`memcached_dump(3)` :manpage:`memdump(1)`
+:manpage:`memcached_set_memory_allocators(3)` :manpage:`memcached_get_memory_allocators(3)` :manpage:`memcached_get_user_data(3)` :manpage:`memcached_set_user_data(3)`
--- /dev/null
+========================
+Configuring Libmemcached
+========================
+
+Libmemcached implements a custom language for configuring and modifying servers.
-.. highlight:: perl
-
-
-libmemcached_examples
-*********************
-
+========
+Examples
+========
Examples for libmemcached
-
-***********
+-----------
DESCRIPTION
-***********
+-----------
For full examples, test cases are found in tests/\*.c in the main
distribution. These are always up to date, and are used for each test run of
the library.
+------------------------------
Creating and Freeing structure
-==============================
-
+------------------------------
-.. code-block:: perl
+.. code-block:: c
memcached_st *memc;
memcached_return_t rc;
finished.
+---------------------
Connecting to servers
-=====================
+---------------------
-.. code-block:: perl
+.. code-block:: c
memcached_server_st *servers;
memcached_st *memc= memcached_create(NULL);
structures.
+----------------------------
Adding a value to the server
-============================
+----------------------------
-.. code-block:: perl
+.. code-block:: c
char *key= "foo";
char *value;
It is best practice to always look at the return value of any operation.
+------------------------
Fetching multiple values
-========================
+------------------------
-.. code-block:: perl
+.. code-block:: c
memcached_return_t rc;
char *keys[]= {"fudge", "son", "food"};
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
SEE ALSO
-********
+--------
-memcached(1)
+:manpage:`memcached(1)`
-.. highlight:: perl
+===========
+Introducing
+===========
-libmemcachedutil
-****************
+Utility library for libmemcached
-libmemcachedutil - Utility library for libmemcached
-
-
-*******
+-------
LIBRARY
-*******
+-------
-C Client Library containing utility functions for libmemcached (libmemcachedutil, -lmemcachedutil)
+C Client Library containing utility functions for libmemcached (libmemcachedutil, -lmemcachedutil -lmemcached)
-********
+--------
SYNOPSIS
-********
-
+--------
.. code-block:: perl
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **libmemcachedutil**\ is a small and thread-safe client library that provides
extra functionality built on top of \ **libmemcached**\ .
-*******
+-------
THREADS
-*******
+-------
Do not try to access an instance of \ ``memcached_st``\ from multiple threads
implementation. see memcached_pool_create(3).
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Trond Norbye, <trond.norbye@gmail.com>
-
-
-********
+--------
SEE ALSO
-********
+--------
-libmemcached(3) memcached_pool_create(3) memcached_pool_destroy(3) memcached_pool_pop(3) memcached_pool_push(3)
+:manpage:`libmemcached(3)`
+:manpage:`memcached_pool_create(3)` :manpage:`memcached_pool_destroy(3)` :manpage:`memcached_pool_pop(3)` :manpage:`memcached_pool_push(3)`
Create and destroy hashkit objects
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
hashkit_st *hashkit_create(hashkit_st *hash);
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Create and destroy hashkit objects
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
hashkit_st *hashkit_create(hashkit_st *hash);
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Create and destroy hashkit objects
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
hashkit_st *hashkit_create(hashkit_st *hash);
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Create and destroy hashkit objects
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
hashkit_st *hashkit_create(hashkit_st *hash);
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Various hash functions to use for calculating values for keys
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_default(const char *key, size_t key_length);
uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Generate a value for the given key
.SH LIBRARY
.sp
-C Library for hashing algorithms (libhashkit, \-lhashkit)
+C Library for hashing algorithms (libmemcached, \-lhashkit)
.SH SYNOPSIS
.sp
.nf
.ft C
-#include <libhashkit/hashkit.h>
+#include <libmemcached/hashkit.h>
uint32_t hashkit_value(hashkit_st *hash,
const char *key,
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
hashkit_create(3) hashkit_set_distribution(3) hashkit_set_hash_fn(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
--- /dev/null
+.TH "LIBHASHKIT" "3" "April 08, 2011" "0.47" "libmemcached"
+.SH NAME
+libhashkit \- libhashkit Documentation
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.\" Man page generated from reStructeredText.
+.
+.SH LIBRARY
+.sp
+C library collection of useful hashing algorithm (libhashkit, \-lhashkit)
+.SH SYNOPSIS
+.sp
+.nf
+.ft C
+cc [ flag ... ] file ... \-lhashkit
+
+#include <libhashkit/hashkit.h>
+.ft P
+.fi
+.SH DESCRIPTION
+.sp
+\fBlibhashkit\fP is a small and thread\-safe client library that provides a collection of useful hashing algorithm. libhashkit is distributed with libmemcached.
+.SH HOME
+.sp
+To find out more information please check:
+\fI\%https://launchpad.net/libmemcached\fP
+.SH SEE ALSO
+.sp
+\fIlibmemcached(3)\fP
+.SH AUTHOR
+Brian Aker
+.SH COPYRIGHT
+2011, Brian Aker DataDifferential, http://datadifferential.com/
+.\" Generated by docutils manpage writer.
+.\"
+.
Nearly all functions return a \fBmemcached_return_t\fP value.
This value can be translated to a printable string with memcached_strerror(3).
.sp
-Partitioning based on keys is supported in the library. Using the key partioning
+Partitioning based on keys is testsed in the library. Using the key partioning
functions it is possible to group sets of object onto servers.
.sp
\fBmemcached_st\fP structures are thread\-safe, but each thread must
used in this library.
.sp
If you are working with GNU autotools you will want to add the following to
-your configure.ac to properly include libmemcached in your application.
+your COPYING to properly include libmemcached in your application.
.sp
PKG_CHECK_MODULES(DEPS, libmemcached >= 0.8.0)
AC_SUBST(DEPS_CFLAGS)
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached_examples(3) libmemcached(1) memcat(1) memcp(1) memflush(1) memrm(1) memslap(1) memstat(1) memcached_fetch(3) memcached_replace(3) memcached_server_list_free(3) libmemcached_examples(3) memcached_clone(3) memcached_free(3) memcached_server_add(3) memcached_server_push(3) memcached_add(3) memcached_get(3) memcached_server_count(3) memcached_servers_parse(3) memcached_create(3) memcached_increment(3) memcached_server_list(3) memcached_set(3) memcached_decrement(3) memcached_mget(3) memcached_server_list_append(3) memcached_strerror(3) memcached_delete(3) memcached_quit(3) memcached_server_list_count(3) memcached_verbosity(3) memcached_server_add_unix_socket(3) memcached_result_create(3) memcached_result_free(3) memcached_result_key_value(3) memcached_result_key_length(3) memcached_result_value(3) memcached_result_length(3) memcached_result_flags(3) memcached_result_cas(3) memcached_result_st(3) memcached_append(3) memcached_prepend(3) memcached_fetch_result(3) memerror(1) memcached_get_by_key(3) memcached_mget_by_key(3) memcached_delete_by_key(3) memcached_fetch_execute(3) memcached_callback_get(3) memcached_callback_set(3) memcached_version(3) memcached_lib_version(3) memcached_result_set_value(3) memcached_dump(3) memdump(1) memcached_set_memory_allocators(3) memcached_get_memory_allocators(3) memcached_get_user_data(3) memcached_set_user_data(3)
+\fImemcached(1)\fP \fIlibmemcached_examples(3)\fP \fIlibmemcached(1)\fP \fImemcat(1)\fP \fImemcp(1)\fP \fImemflush(1)\fP \fImemrm(1)\fP \fImemslap(1)\fP \fImemstat(1)\fP \fImemcached_fetch(3)\fP \fImemcached_replace(3)\fP \fImemcached_server_list_free(3)\fP \fIlibmemcached_examples(3)\fP \fImemcached_clone(3)\fP \fImemcached_free(3)\fP
+\fImemcached_server_add(3)\fP \fImemcached_server_push(3)\fP \fImemcached_add(3)\fP \fImemcached_get(3)\fP \fImemcached_server_count(3)\fP \fImemcached_servers_parse(3)\fP \fImemcached_create(3)\fP \fImemcached_increment(3)\fP \fImemcached_server_list(3)\fP \fImemcached_set(3)\fP
+\fImemcached_decrement(3)\fP \fImemcached_mget(3)\fP \fImemcached_server_list_append(3)\fP \fImemcached_strerror(3)\fP \fImemcached_delete(3)\fP \fImemcached_quit(3)\fP \fImemcached_server_list_count(3)\fP \fImemcached_verbosity(3)\fP \fImemcached_server_add_unix_socket(3)\fP \fImemcached_result_create(3)\fP \fImemcached_result_free(3)\fP
+\fImemcached_result_key_value(3)\fP \fImemcached_result_key_length(3)\fP \fImemcached_result_value(3)\fP \fImemcached_result_length(3)\fP \fImemcached_result_flags(3)\fP
+\fImemcached_result_cas(3)\fP \fImemcached_result_st(3)\fP \fImemcached_append(3)\fP \fImemcached_prepend(3)\fP \fImemcached_fetch_result(3)\fP
+\fImemerror(1)\fP \fImemcached_get_by_key(3)\fP \fImemcached_mget_by_key(3)\fP \fImemcached_delete_by_key(3)\fP
+\fImemcached_fetch_execute(3)\fP \fImemcached_callback_get(3)\fP \fImemcached_callback_set(3)\fP \fImemcached_version(3)\fP
+\fImemcached_lib_version(3)\fP \fImemcached_result_set_value(3)\fP \fImemcached_dump(3)\fP \fImemdump(1)\fP
+\fImemcached_set_memory_allocators(3)\fP \fImemcached_get_memory_allocators(3)\fP \fImemcached_get_user_data(3)\fP \fImemcached_set_user_data(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
For full examples, test cases are found in tests/*.c in the main
distribution. These are always up to date, and are used for each test run of
the library.
-.SS Creating and Freeing structure
+.SH CREATING AND FREEING STRUCTURE
.sp
.nf
.ft C
.sp
The above code would create a connection and then free the connection when
finished.
-.SS Connecting to servers
+.SH CONNECTING TO SERVERS
.sp
.nf
.ft C
\fBmemcached_st\fP structure.
.sp
You can reuse the \fBmemcached_server_st\fP object with multile \fBmemcached_st\fPstructures.
-.SS Adding a value to the server
+.SH ADDING A VALUE TO THE SERVER
.sp
.nf
.ft C
.fi
.sp
It is best practice to always look at the return value of any operation.
-.SS Fetching multiple values
+.SH FETCHING MULTIPLE VALUES
.sp
.nf
.ft C
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1)
+\fImemcached(1)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.\" Man page generated from reStructeredText.
.
.sp
-libmemcachedutil \- Utility library for libmemcached
+Utility library for libmemcached
.SH LIBRARY
.sp
-C Client Library containing utility functions for libmemcached (libmemcachedutil, \-lmemcachedutil)
+C Client Library containing utility functions for libmemcached (libmemcachedutil, \-lmemcachedutil \-lmemcached)
.SH SYNOPSIS
.sp
.nf
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-libmemcached(3) memcached_pool_create(3) memcached_pool_destroy(3) memcached_pool_pop(3) memcached_pool_push(3)
+\fIlibmemcached(3)\fP
+\fImemcached_pool_create(3)\fP \fImemcached_pool_destroy(3)\fP \fImemcached_pool_pop(3)\fP \fImemcached_pool_push(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
--- /dev/null
+.TH "MEMASLAP" "1" "April 08, 2011" "0.47" "libmemcached"
+.SH NAME
+memaslap \- libmemcached Documentation
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.\" Man page generated from reStructeredText.
+.
+.SH SYNOPSIS
+.INDENT 0.0
+.TP
+.B \-\-help
+.UNINDENT
+.SH DESCRIPTION
+.sp
+\fBmemaslap\fP is a load generation and benchmark tool for memcached(1)
+servers. It generates configurable workload such as threads, concurrencies, connections,
+run time, overwrite, miss rate, key size, value size, get/set proportion,
+expected throughput, and so on. Furthermore, it also testss data
+verification, expire\-time verification, UDP, binary protocol, facebook test,
+replication test, multi\-get and reconnection, etc.
+.sp
+Memslap manages network connections like memcached with
+libevent. Each thread of memaslap is bound with a CPU core, all
+the threads don\(aqt communicate with each other, and there are several socket
+connections in each thread. Each connection keeps key size distribution,
+value size distribution, and command distribution by itself.
+.sp
+You can specify servers via the \fB\-\-servers\fP option or via the
+environment variable \fBMEMCACHED_SERVERS\fP.
+.SH FEATURES
+.sp
+Memslap is developed to for the following purposes:
+.sp
+Manages network connections with libevent asynchronously.
+.sp
+Set both TCP and UDP up to use non\-blocking IO.
+.sp
+Improves parallelism: higher performance in multi\-threads environments.
+.sp
+Improves time efficiency: faster processing speed.
+.sp
+Generates key and value more efficiently; key size distribution and value size distribution are configurable.
+.sp
+Supports get, multi\-get, and set commands; command distribution is configurable.
+.sp
+Supports controllable miss rate and overwrite rate.
+.sp
+Supports data and expire\-time verification.
+.sp
+Supports dumping statistic information periodically.
+.sp
+Supports thousands of TCP connections.
+.sp
+Supports binary protocol.
+.sp
+Supports facebook test (set with TCP and multi\-get with UDP) and replication test.
+.SH DETAILS
+.SS Effective implementation of network.
+.sp
+For memaslap, both TCP and UDP use non\-blocking network IO. All
+the network events are managed by libevent as memcached. The network module
+of memaslap is similar to memcached. Libevent can ensure
+memaslap can handle network very efficiently.
+.SS Effective implementation of multi\-threads and concurrency
+.sp
+Memslap has the similar implementation of multi\-threads to
+memcached. Memslap creates one or more self\-governed threads;
+each thread is bound with one CPU core if the system testss setting CPU
+core affinity.
+.sp
+In addition, each thread has a libevent to manage the events of the network;
+each thread has one or more self\-governed concurrencies; and each
+concurrency has one or more socket connections. All the concurrencies don’t
+communicate with each other even though they are in the same thread.
+.sp
+Memslap can create thousands of socket connections, and each
+concurrency has tens of socket connections. Each concurrency randomly or
+sequentially selects one socket connection from its socket connection pool
+to run, so memaslap can ensure each concurrency handles one
+socket connection at any given time. Users can specify the number of
+concurrency and socket connections of each concurrency according to their
+expected workload.
+.SS Effective implementation of generating key and value
+.sp
+In order to improve time efficiency and space efficiency,
+memaslap creates a random characters table with 10M characters. All the
+suffixes of keys and values are generated from this random characters table.
+.sp
+Memslap uses the offset in the character table and the length
+of the string to identify a string. It can save much memory.
+Each key contains two parts, a prefix and a suffix. The prefix is an
+uint64_t, 8 bytes. In order to verify the data set before,
+memaslap need to ensure each key is unique, so it uses the prefix to identify
+a key. The prefix cannot include illegal characters, such as ‘r’, ‘n’,
+‘0’ and ‘ ‘. And memaslap has an algorithm to ensure that.
+.sp
+Memslap doesn’t generate all the objects (key\-value pairs) at
+the beginning. It only generates enough objects to fill the task window
+(default 10K objects) of each concurrency. Each object has the following
+basic information, key prefix, key suffix offset in the character table, key
+length, value offset in the character table, and value length.
+.sp
+In the work process, each concurrency sequentially or randomly selects an
+object from the window to do set operation or get operation. At the same
+time, each concurrency kicks objects out of its window and adds new object
+into it.
+.SS Simple but useful task scheduling
+.sp
+Memslap uses libevent to schedule all the concurrencies of
+threads, and each concurrency schedules tasks based on the local task
+window. Memslap assumes that if each concurrency keeps the same
+key distribution, value distribution and commands distribution, from
+outside, memaslap keeps all the distribution as a whole.
+Each task window includes a lot of objects, each object stores its basic
+information, such as key, value, expire time, and so on. At any time, all
+the objects in the window keep the same and fixed key and value
+distribution. If an object is overwritten, the value of the object will be
+updated. Memslap verifies the data or expire\-time according to
+the object information stored in the task window.
+.sp
+Libevent selects which concurrency to handle based on a specific network
+event. Then the concurrency selects which command (get or set) to operate
+based on the command distribution. If it needs to kick out an old object and
+add a new object, in order to keep the same key and value distribution, the
+new object must have the same key length and value length.
+.sp
+If memcached server has two cache layers (memory and SSD), running
+memaslap with different window sizes can get different cache
+miss rates. If memaslap adds enough objects into the windows at
+the beginning, and the cache of memcached cannot store all the objects
+initialized, then memaslap will get some objects from the second
+cache layer. It causes the first cache layer to miss. So the user can
+specify the window size to get the expected miss rate of the first cache
+layer.
+.SS Useful implementation of multi\-servers , UDP, TCP, multi\-get and binary protocol
+.sp
+Because each thread is self\-governed, memaslap can assign
+different threads to handle different memcached servers. This is just one of
+the ways in which memaslap testss multiple servers. The only
+limitation is that the number of servers cannot be greater than the number
+of threads. The other way to tests multiple servers is for replication
+test. Each concurrency has one socket connection to each memcached server.
+For the implementation, memaslap can set some objects to one
+memcached server, and get these objects from the other servers.
+.sp
+By default, Memslap does single get. If the user specifies
+multi\-get option, memaslap will collect enough get commands and
+pack and send the commands together.
+.sp
+Memslap testss both the ASCII protocol and binary protocol,
+but it runs on the ASCII protocol by default.
+Memslap by default runs on the TCP protocol, but it also
+testss UDP. Because UDP is unreliable, dropped packages and out\-of\-order
+packages may occur. Memslap creates a memory buffer to handle
+these problems. Memslap tries to read all the response data of
+one command from the server and reorders the response data. If some packages
+get lost, the waiting timeout mechanism can ensure half\-baked packages will
+be discarded and the next command will be sent.
+.SH USAGE
+.sp
+Below are some usage samples:
+.sp
+memaslap \-s 127.0.0.1:11211 \-S 5s
+.sp
+memaslap \-s 127.0.0.1:11211 \-t 2m \-v 0.2 \-e 0.05 \-b
+.sp
+memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-w 40k \-S 20s \-o 0.2
+.sp
+memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-T 4 \-c 128 \-d 20 \-P 40k
+.sp
+memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-d 50 \-a \-n 40
+.sp
+memaslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m
+.sp
+memaslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m \-p 2
+.sp
+The user must specify one server at least to run memaslap. The
+rest of the parameters have default values, as shown below:
+.sp
+Thread number = 1 Concurrency = 16
+.sp
+Run time = 600 seconds Configuration file = NULL
+.sp
+Key size = 64 Value size = 1024
+.sp
+Get/set = 9:1 Window size = 10k
+.sp
+Execute number = 0 Single get = true
+.sp
+Multi\-get = false Number of sockets of each concurrency = 1
+.sp
+Reconnect = false Data verification = false
+.sp
+Expire\-time verification = false ASCII protocol = true
+.sp
+Binary protocol = false Dumping statistic information
+.sp
+periodically = false
+.sp
+Overwrite proportion = 0% UDP = false
+.sp
+TCP = true Limit throughput = false
+.sp
+Facebook test = false Replication test = false
+.SS Key size, value size and command distribution.
+.sp
+All the distributions are read from the configuration file specified by user
+with “—cfg_cmd” option. If the user does not specify a configuration file,
+memaslap will run with the default distribution (key size = 64,
+value size = 1024, get/set = 9:1). For information on how to edit the
+configuration file, refer to the “Configuration File” section.
+.sp
+The minimum key size is 16 bytes; the maximum key size is 250 bytes. The
+precision of proportion is 0.001. The proportion of distribution will be
+rounded to 3 decimal places.
+.sp
+The minimum value size is 1 bytes; the maximum value size is 1M bytes. The
+precision of proportion is 0.001. The proportion of distribution will be
+rounded to 3 decimal places.
+Currently, memaslap only testss set and get commands. And it
+testss 100% set and 100% get. For 100% get, it will preset some objects to
+the server.
+.SS Multi\-thread and concurrency
+.sp
+The high performance of memaslap benefits from the special
+schedule of thread and concurrency. It’s important to specify the proper
+number of them. The default number of threads is 1; the default number of
+concurrency is 16. The user can use “—threads” and “\-\-concurrency” to
+specify these variables.
+.sp
+If the system testss setting CPU affinity and the number of threads
+specified by the user is greater than 1, memaslap will try to
+bind each thread to a different CPU core. So if you want to get the best
+performance memaslap, it is better to specify the number of
+thread equal to the number of CPU cores. The number of threads specified by
+the user can also be less or greater than the number of CPU cores. Because
+of the limitation of implementation, the number of concurrencies could be
+the multiple of the number of threads.
+.INDENT 0.0
+.IP 1. 3
+.
+For 8 CPU cores system
+.UNINDENT
+.sp
+For example:
+.sp
+\-\-threads=2 \-\-concurrency=128
+.sp
+\-\-threads=8 \-\-concurrency=128
+.sp
+\-\-threads=8 \-\-concurrency=256
+.sp
+\-\-threads=12 \-\-concurrency=144
+.INDENT 0.0
+.IP 2. 3
+.
+For 16 CPU cores system
+.UNINDENT
+.sp
+For example:
+.sp
+\-\-threads=8 \-\-concurrency=128
+.sp
+\-\-threads=16 \-\-concurrency=256
+.sp
+\-\-threads=16 \-\-concurrency=512
+.sp
+\-\-threads=24 \-\-concurrency=288
+.sp
+The memaslap performs very well, when
+used to test the performance of memcached servers.
+Most of the time, the bottleneck is the network or
+the server. If for some reason the user wants to
+limit the performance of memaslap, there
+are two ways to do this:
+.sp
+Decrease the number of threads and concurrencies.
+Use the option “\-\-tps” that memaslap
+provides to limit the throughput. This option allows
+the user to get the expected throughput. For
+example, assume that the maximum throughput is 50
+kops/s for a specific configuration, you can specify
+the throughput equal to or less than the maximum
+throughput using “\-\-tps” option.
+.SS Window size
+.sp
+Most of the time, the user does not need to specify the window size. The
+default window size is 10k. For Schooner Memcached, the user can specify
+different window sizes to get different cache miss rates based on the test
+case. Memslap testss cache miss rate between 0% and 100%.
+If you use this utility to test the performance of Schooner Memcached, you
+can specify a proper window size to get the expected cache miss rate. The
+formula for calculating window size is as follows:
+.sp
+Assume that the key size is 128 bytes, and the value size is 2048 bytes, and
+concurrency=128.
+.sp
+1. Small cache cache_size=1M, 100% cache miss (all data get from SSD).
+win_size=10k
+.INDENT 0.0
+.IP 2. 3
+.
+cache_size=4G
+.UNINDENT
+.sp
+(1). cache miss rate 0%
+.sp
+win_size=8k
+.sp
+(2). cache miss rate 5%
+.sp
+win_size=11k
+.INDENT 0.0
+.IP 3. 3
+.
+cache_size=16G
+.UNINDENT
+.sp
+(1). cache miss rate 0%
+.sp
+win_size=32k
+.sp
+(2). cache miss
+.sp
+rate 5%
+.sp
+win_size=46k
+.sp
+The formula for calculating window size for cache miss rate 0%:
+.sp
+cache_size / concurrency / (key_size + value_size) * 0.5
+.sp
+The formula for calculating window size for cache miss rate 5%:
+.sp
+cache_size / concurrency / (key_size + value_size) * 0.7
+.SS Verification
+.sp
+Memslap testss both data verification and expire\-time
+verification. The user can use "\-\-verify=" or "\-v" to specify the proportion
+of data verification. In theory, it testss 100% data verification. The
+user can use "\-\-exp_verify=" or "\-e" to specify the proportion of
+expire\-time verification. In theory, it testss 100% expire\-time
+verification. Specify the "\-\-verbose" options to get more detailed error
+information.
+.sp
+For example: \-\-exp_verify=0.01 –verify=0.1 , it means that 1% of the objects
+set with expire\-time, 10% of the objects gotten will be verified. If the
+objects are gotten, memaslap will verify the expire\-time and
+value.
+.SS multi\-servers and multi\-config
+.sp
+Memslap testss multi\-servers based on self\-governed thread.
+There is a limitation that the number of servers cannot be greater than the
+number of threads. Memslap assigns one thread to handle one
+server at least. The user can use the "\-\-servers=" or "\-s" option to specify
+multi\-servers.
+.sp
+For example:
+.sp
+\-\-servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 \-\-threads=6 \-\-concurrency=36
+.sp
+The above command means that there are 6 threads, with each thread having 6
+concurrencies and that threads 0 and 3 handle server 0 (10.1.1.1); threads 1
+and 4 handle server 1 (10.1.1.2); and thread 2 and 5 handle server 2
+(10.1.1.3).
+.sp
+All the threads and concurrencies in memaslap are self\-governed.
+.sp
+So is memaslap. The user can start up several
+memaslap instances. The user can run memaslap on different client
+machines to communicate with the same memcached server at the same. It is
+recommended that the user start different memaslap on different
+machines using the same configuration.
+.SS Run with execute number mode or time mode
+.sp
+The default memaslap runs with time mode. The default run time
+is 10 minutes. If it times out, memaslap will exit. Do not
+specify both execute number mode and time mode at the same time; just
+specify one instead.
+.sp
+For example:
+.sp
+\-\-time=30s (It means the test will run 30 seconds.)
+.sp
+\-\-execute_number=100000 (It means that after running 100000 commands, the test will exit.)
+.SS Dump statistic information periodically.
+.sp
+The user can use "\-\-stat_freq=" or "\-S" to specify the frequency.
+.sp
+For example:
+.sp
+\-\-stat_freq=20s
+.sp
+Memslap will dump the statistics of the commands (get and set) at the frequency of every 20
+seconds.
+.sp
+For more information on the format of dumping statistic information, refer to “Format of Output” section.
+.SS Multi\-get
+.sp
+The user can use "\-\-division=" or "\-d" to specify multi\-get keys count.
+Memslap by default does single get with TCP. Memslap also testss data
+verification and expire\-time verification for multi\-get.
+.sp
+Memslap testss multi\-get with both TCP and UDP. Because of
+the different implementation of the ASCII protocol and binary protocol,
+there are some differences between the two. For the ASCII protocol,
+memaslap sends one “multi\-get” to the server once. For the
+binary protocol, memaslap sends several single get commands
+together as “multi\-get” to the server.
+.SS UDP and TCP
+.sp
+Memslap testss both UDP and TCP. For TCP,
+memaslap does not reconnect the memcached server if socket connections are
+lost. If all the socket connections are lost or memcached server crashes,
+memaslap will exit. If the user specifies the “\-\-reconnect”
+option when socket connections are lost, it will reconnect them.
+.sp
+User can use “\-\-udp” to enable the UDP feature, but UDP comes with some
+limitations:
+.sp
+UDP cannot set data more than 1400 bytes.
+.sp
+UDP is not testsed by the binary protocol because the binary protocol of
+memcached does not tests that.
+.sp
+UDP doesn’t tests reconnection.
+.SS Facebook test
+.sp
+Set data with TCP and multi\-get with UDP. Specify the following options:
+.sp
+"\-\-facebook \-\-division=50"
+.sp
+If you want to create thousands of TCP connections, specify the
+.sp
+"\-\-conn_sock=" option.
+.sp
+For example: \-\-facebook \-\-division=50 \-\-conn_sock=200
+.sp
+The above command means that memaslap will do facebook test,
+each concurrency has 200 socket TCP connections and one UDP socket.
+.sp
+Memslap sets objects with the TCP socket, and multi\-gets 50
+objects once with the UDP socket.
+.sp
+If you specify "\-\-division=50", the key size must be less that 25 bytes
+because the UDP packet size is 1400 bytes.
+.SS Replication test
+.sp
+For replication test, the user must specify at least two memcached servers.
+The user can use “—rep_write=” option to enable feature.
+.sp
+For example:
+.sp
+\-\-servers=10.1.1.1:11211,10.1.1.2:11212 –rep_write=2
+.sp
+The above command means that there are 2 replication memcached servers,
+memaslap will set objects to both server 0 and server 1, get
+objects which are set to server 0 before from server 1, and also get objects
+which are set to server 1 before from server 0. If server 0 crashes,
+memaslap will only get objects from server 1. If server 0 comes
+back to life again, memaslap will reconnect server 0. If both
+server 0 and server 1 crash, memaslap will exit.
+.SS Supports thousands of TCP connections
+.sp
+Start memaslap with "\-\-conn_sock=" or "\-n" to enable this
+feature. Make sure that your system can tests opening thousands of files
+and creating thousands of sockets. However, this feature does not tests
+reconnection if sockets disconnect.
+.sp
+For example:
+.sp
+\-\-threads=8 \-\-concurrency=128 \-\-conn_sock=128
+.sp
+The above command means that memaslap starts up 8 threads, each
+thread has 16 concurrencies, each concurrency has 128 TCP socket
+connections, and the total number of TCP socket connections is 128 * 128 =
+16384.
+.SS Supports binary protocol
+.sp
+Start memaslap with "\-\-binary" or "\-B" options to enable this
+feature. It testss all the above features except UDP, because the latest
+memcached 1.3.3 does not implement binary UDP protocol.
+.sp
+For example:
+.sp
+\-\-binary
+.sp
+Since memcached 1.3.3 doesn\(aqt implement binary UDP protocol,
+memaslap does not tests UDP. In addition, memcached 1.3.3 does not tests
+multi\-get. If you specify "\-\-division=50" option, it just sends 50 get
+commands together as “mulit\-get” to the server.
+.SH CONFIGURATION FILE
+.sp
+This section describes the format of the configuration file. By default
+when no configuration file is specified memaslap reads the default
+one located at ~/.memaslap.cnf.
+.sp
+Below is a sample configuration file:
+.sp
+.nf
+.ft C
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+#comments should start with \(aq#\(aq
+#key
+#start_len end_len proportion
+#
+#key length range from start_len to end_len
+#start_len must be equal to or greater than 16
+#end_len must be equal to or less than 250
+#start_len must be equal to or greater than end_len
+#memaslap will generate keys according to the key range
+#proportion: indicates keys generated from one range accounts for the total
+generated keys
+#
+#example1: key range 16~100 accounts for 80%
+# key range 101~200 accounts for 10%
+# key range 201~250 accounts for 10%
+# total should be 1 (0.8+0.1+0.1 = 1)
+#
+# 16 100 0.8
+# 101 200 0.1
+# 201 249 0.1
+#
+#example2: all keys length are 128 bytes
+#
+# 128 128 1
+key
+128 128 1
+#value
+#start_len end_len proportion
+#
+#value length range from start_len to end_len
+#start_len must be equal to or greater than 1
+#end_len must be equal to or less than 1M
+#start_len must be equal to or greater than end_len
+#memaslap will generate values according to the value range
+#proportion: indicates values generated from one range accounts for the
+total generated values
+#
+#example1: value range 1~1000 accounts for 80%
+# value range 1001~10000 accounts for 10%
+# value range 10001~100000 accounts for 10%
+# total should be 1 (0.8+0.1+0.1 = 1)
+#
+# 1 1000 0.8
+# 1001 10000 0.1
+# 10001 100000 0.1
+#
+#example2: all value length are 128 bytes
+#
+# 128 128 1
+value
+2048 2048 1
+#cmd
+#cmd_type cmd_proportion
+#
+#currently memaslap only testss get and set command.
+#
+#cmd_type
+#set 0
+#get 1
+#
+#example: set command accounts for 50%
+# get command accounts for 50%
+# total should be 1 (0.5+0.5 = 1)
+#
+# cmd
+# 0 0.5
+# 1 0.5
+cmd
+0 0.1
+1.0 0.9
+.ft P
+.fi
+.SH FORMAT OF OUTPUT
+.sp
+At the beginning, memaslap displays some configuration information as follows:
+.sp
+servers : 127.0.0.1:11211
+.sp
+threads count: 1
+.sp
+concurrency: 16
+.sp
+run time: 20s
+.sp
+windows size: 10k
+.sp
+set proportion: set_prop=0.10
+.sp
+get proportion: get_prop=0.90
+.SS Where
+.sp
+servers : "servers"
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The servers used by memaslap.
+.UNINDENT
+.UNINDENT
+.sp
+threads count
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The number of threads memaslap runs with.
+.UNINDENT
+.UNINDENT
+.sp
+concurrency
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The number of concurrencies memaslap runs with.
+.UNINDENT
+.UNINDENT
+.sp
+run time
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How long to run memaslap.
+.UNINDENT
+.UNINDENT
+.sp
+windows size
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The task window size of each concurrency.
+.UNINDENT
+.UNINDENT
+.sp
+set proportion
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The proportion of set command.
+.UNINDENT
+.UNINDENT
+.sp
+get proportion
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The proportion of get command.
+.UNINDENT
+.UNINDENT
+.sp
+The output of dynamic statistics is something like this:
+.sp
+.nf
+.ft C
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+Get Statistics
+Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
+Avg(us) Std_dev Geo_dist
+Period 5 345826 69165 65.3 0 27 2198 203
+95.43 177.29
+Global 20 1257935 62896 71.8 0 26 3791 224
+117.79 192.60
+
+
+Set Statistics
+Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
+Avg(us) Std_dev Geo_dist
+Period 5 38425 7685 7.3 0 42 628 240
+88.05 220.21
+Global 20 139780 6989 8.0 0 37 3790 253
+117.93 224.83
+
+
+Total Statistics
+Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
+Avg(us) Std_dev Geo_dist
+Period 5 384252 76850 72.5 0 27 2198 207
+94.72 181.18
+Global 20 1397720 69886 79.7 0 26 3791 227
+117.93 195.60
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+.ft P
+.fi
+.SS Where
+.sp
+Get Statistics
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Statistics information of get command
+.UNINDENT
+.UNINDENT
+.sp
+Set Statistics
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Statistics information of set command
+.UNINDENT
+.UNINDENT
+.sp
+Total Statistics
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Statistics information of both get and set command
+.UNINDENT
+.UNINDENT
+.sp
+Period
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Result within a period
+.UNINDENT
+.UNINDENT
+.sp
+Global
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Accumulated results
+.UNINDENT
+.UNINDENT
+.sp
+Ops
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Total operations
+.UNINDENT
+.UNINDENT
+.sp
+TPS
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Throughput, operations/second
+.UNINDENT
+.UNINDENT
+.sp
+Net
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The rate of network
+.UNINDENT
+.UNINDENT
+.sp
+Get_miss
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How many objects can’t be gotten
+.UNINDENT
+.UNINDENT
+.sp
+Min
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The minimum response time
+.UNINDENT
+.UNINDENT
+.sp
+Max
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The maximum response time
+.UNINDENT
+.UNINDENT
+.sp
+Avg:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The average response time
+.UNINDENT
+.UNINDENT
+.sp
+Std_dev
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Standard deviation of response time
+.UNINDENT
+.UNINDENT
+.sp
+Geo_dist
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Geometric distribution based on natural exponential function
+.UNINDENT
+.UNINDENT
+.sp
+At the end, memaslap will output something like this:
+.sp
+.nf
+.ft C
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+Get Statistics (1257956 events)
+ Min: 26
+ Max: 3791
+ Avg: 224
+ Geo: 192.60
+ Std: 116.23
+ Log2 Dist:
+ 4: 0 10 84490 215345
+ 8: 484890 459823 12543 824
+ 12: 31
+
+ Set Statistics (139782 events)
+ Min: 37
+ Max: 3790
+ Avg: 253
+ Geo: 224.84
+ Std: 116.83
+ Log2 Dist:
+ 4: 0 0 4200 16988
+ 8: 50784 65574 2064 167
+ 12: 5
+
+ Total Statistics (1397738 events)
+ Min: 26
+ Max: 3791
+ Avg: 227
+ Geo: 195.60
+ Std: 116.60
+ Log2 Dist:
+ 4: 0 10 88690 232333
+ 8: 535674 525397 14607 991
+ 12: 36
+
+cmd_get: 1257969
+cmd_set: 139785
+get_misses: 0
+verify_misses: 0
+verify_failed: 0
+expired_get: 0
+unexpired_unget: 0
+written_bytes: 242516030
+read_bytes: 1003702556
+object_bytes: 152086080
+packet_disorder: 0
+packet_drop: 0
+udp_timeout: 0
+
+Run time: 20.0s Ops: 1397754 TPS: 69817 Net_rate: 59.4M/s
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+.ft P
+.fi
+.SS Where
+.sp
+Get Statistics
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Get statistics of response time
+.UNINDENT
+.UNINDENT
+.sp
+Set Statistics
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Set statistics of response time
+.UNINDENT
+.UNINDENT
+.sp
+Total Statistics
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Both get and set statistics of response time
+.UNINDENT
+.UNINDENT
+.sp
+Min
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The accumulated and minimum response time
+.UNINDENT
+.UNINDENT
+.sp
+Max
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The accumulated and maximum response time
+.UNINDENT
+.UNINDENT
+.sp
+Avg
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The accumulated and average response time
+.UNINDENT
+.UNINDENT
+.sp
+Std
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Standard deviation of response time
+.UNINDENT
+.UNINDENT
+.sp
+Log2 Dist
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Geometric distribution based on logarithm 2
+.UNINDENT
+.UNINDENT
+.sp
+cmd_get
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Total get commands done
+.UNINDENT
+.UNINDENT
+.sp
+cmd_set
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Total set commands done
+.UNINDENT
+.UNINDENT
+.sp
+get_misses
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How many objects can’t be gotten from server
+.UNINDENT
+.UNINDENT
+.sp
+verify_misses
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How many objects need to verify but can’t get them
+.UNINDENT
+.UNINDENT
+.sp
+verify_failed
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How many objects with insistent value
+.UNINDENT
+.UNINDENT
+.sp
+expired_get
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How many objects are expired but we get them
+.UNINDENT
+.UNINDENT
+.sp
+unexpired_unget
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How many objects are unexpired but we can’t get them
+.UNINDENT
+.UNINDENT
+.sp
+written_bytes
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Total written bytes
+.UNINDENT
+.UNINDENT
+.sp
+read_bytes
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Total read bytes
+.UNINDENT
+.UNINDENT
+.sp
+object_bytes
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Total object bytes
+.UNINDENT
+.UNINDENT
+.sp
+packet_disorder
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How many UDP packages are disorder
+.UNINDENT
+.UNINDENT
+.sp
+packet_drop
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How many UDP packages are lost
+.UNINDENT
+.UNINDENT
+.sp
+udp_timeout
+.INDENT 0.0
+.INDENT 3.5
+.sp
+How many times UDP time out happen
+.UNINDENT
+.UNINDENT
+.sp
+Run time
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Total run time
+.UNINDENT
+.UNINDENT
+.sp
+Ops
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Total operations
+.UNINDENT
+.UNINDENT
+.sp
+TPS
+.INDENT 0.0
+.INDENT 3.5
+.sp
+Throughput, operations/second
+.UNINDENT
+.UNINDENT
+.sp
+Net_rate
+.INDENT 0.0
+.INDENT 3.5
+.sp
+The average rate of network
+.UNINDENT
+.UNINDENT
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \-s, \-\-servers=
+.
+List one or more servers to connect. Servers count must be less than
+threads count. e.g.: \-\-servers=localhost:1234,localhost:11211
+.TP
+.B \-T, \-\-threads=
+.
+Number of threads to startup, better equal to CPU numbers. Default 8.
+.TP
+.B \-c, \-\-concurrency=
+.
+Number of concurrency to simulate with load. Default 128.
+.TP
+.B \-n, \-\-conn_sock=
+.
+Number of TCP socks per concurrency. Default 1.
+.TP
+.B \-x, \-\-execute_number=
+.
+Number of operations(get and set) to execute for the
+given test. Default 1000000.
+.TP
+.B \-t, \-\-time=
+.
+How long the test to run, suffix: s\-seconds, m\-minutes, h\-hours,
+d\-days e.g.: \-\-time=2h.
+.TP
+.B \-F, \-\-cfg_cmd=
+.
+Load the configure file to get command,key and value distribution list.
+.TP
+.B \-w, \-\-win_size=
+.
+Task window size of each concurrency, suffix: K, M e.g.: \-\-win_size=10k.
+Default 10k.
+.TP
+.B \-X, \-\-fixed_size=
+.
+Fixed length of value.
+.TP
+.B \-v, \-\-verify=
+.
+The proportion of date verification, e.g.: \-\-verify=0.01
+.TP
+.B \-d, \-\-division=
+.
+Number of keys to multi\-get once. Default 1, means single get.
+.TP
+.B \-S, \-\-stat_freq=
+.
+Frequency of dumping statistic information. suffix: s\-seconds,
+m\-minutes, e.g.: \-\-resp_freq=10s.
+.TP
+.B \-e, \-\-exp_verify=
+.
+The proportion of objects with expire time, e.g.: \-\-exp_verify=0.01.
+Default no object with expire time
+.TP
+.B \-o, \-\-overwrite=
+.
+The proportion of objects need overwrite, e.g.: \-\-overwrite=0.01.
+Default never overwrite object.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-R, \-\-reconnect
+.
+Reconnect tests, when connection is closed it will be reconnected.
+.TP
+.B \-U, \-\-udp
+.
+UDP tests, default memaslap uses TCP, TCP port and UDP port of
+server must be same.
+.TP
+.B \-a, \-\-facebook
+.
+Whether it enables facebook test feature, set with TCP and multi\-get with UDP.
+.TP
+.B \-B, \-\-binary
+.
+Whether it enables binary protocol. Default with ASCII protocol.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-P, \-\-tps=
+.
+Expected throughput, suffix: K, e.g.: \-\-tps=10k.
+.TP
+.B \-p, \-\-rep_write=
+.
+The first nth servers can write data, e.g.: \-\-rep_write=2.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-b, \-\-verbose
+.
+Whether it outputs detailed information when verification fails.
+.TP
+.B \-h, \-\-help
+.
+Display this message and then exit.
+.TP
+.B \-V, \-\-version
+.
+Display the version of the application and then exit.
+.UNINDENT
+.SH EXAMPLES
+.sp
+memaslap \-s 127.0.0.1:11211 \-S 5s
+.sp
+memaslap \-s 127.0.0.1:11211 \-t 2m \-v 0.2 \-e 0.05 \-b
+.sp
+memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-w 40k \-S 20s \-o 0.2
+.sp
+memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-T 4 \-c 128 \-d 20 \-P 40k
+.sp
+memaslap \-s 127.0.0.1:11211 \-F config \-t 2m \-d 50 \-a \-n 40
+.sp
+memaslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m
+.sp
+memaslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m \-p 2
+.SH HOME
+.sp
+To find out more information please check:
+\fI\%http://launchpad.org/libmemcached\fP
+.SH AUTHORS
+.sp
+Mingqiang Zhuang <\fI\%mingqiangzhuang@hengtiansoft.com\fP> (Schooner Technolgy)
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.SH SEE ALSO
+.sp
+\fImemcached(1)\fP \fIlibmemcached(3)\fP
+.SH AUTHOR
+Brian Aker
+.SH COPYRIGHT
+2011, Brian Aker DataDifferential, http://datadifferential.com/
+.\" Generated by docutils manpage writer.
+.\"
+.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Toru Maesaka, <\fI\%dev@torum.net\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint64_t *value);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached(1) servers have the ability to increment and decrement keys
(overflow and underflow are not detected). This gives you the ability to use
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint64_t data);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) behavior can be modified by use memcached_behavior_set().
Default behavior is the library strives to be quick and accurate. Some
.INDENT 3.5
.sp
Causes libmemcached(3) to use the UDP transport when communicating
-with a memcached server. Not all I/O operations are supported
+with a memcached server. Not all I/O operations are testsed
when this behavior is enababled. The following operations will return
\fBMEMCACHED_NOT_SUPPORTED\fP when executed with the MEMCACHED_BEHAVIOR_USE_UDP
enabled: memcached_version(), memcached_stat(), memcached_get(),
memcached_get_by_key(), memcached_mget(), memcached_mget_by_key(),
memcached_fetch(), memcached_fetch_result(), memcached_value_fetch().
.sp
-All other operations are supported but are executed in a \(aqfire\-and\-forget\(aq
+All other operations are testsed but are executed in a \(aqfire\-and\-forget\(aq
mode, in which once the client has executed the operation, no attempt
will be made to ensure the operation has been received and acted on by the
server.
Makes the default hashing algorithm for keys use MD5. The value can be set
to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_JENKINS, MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR.
Each hash has it\(aqs advantages and it\(aqs weaknesses. If you don\(aqt know or don\(aqt care, just go with the default.
-Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable support for this hashing algorithm, configure and build libmemcached with the \-\-enable\-hash_hsieh.
+Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable tests for this hashing algorithm, configure and build libmemcached with the \-\-enable\-hash_hsieh.
.UNINDENT
.UNINDENT
.sp
.INDENT 0.0
.INDENT 3.5
.sp
-Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support.
+Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted tests.
and the hash to MEMCACHED_HASH_MD5.
.UNINDENT
.UNINDENT
Enable TCP_CORK behavior. This is only available as an option Linux.
MEMCACHED_NO_SERVERS is returned if no servers are available to test with.
MEMCACHED_NOT_SUPPORTED is returned if we were not able to determine
-if support was available. All other responses then MEMCACHED_SUCCESS
+if tests was available. All other responses then MEMCACHED_SUCCESS
report an error of some sort. This behavior also enables
MEMCACHED_BEHAVIOR_TCP_NODELAY when set.
.UNINDENT
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint64_t data);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) behavior can be modified by use memcached_behavior_set().
Default behavior is the library strives to be quick and accurate. Some
.INDENT 3.5
.sp
Causes libmemcached(3) to use the UDP transport when communicating
-with a memcached server. Not all I/O operations are supported
+with a memcached server. Not all I/O operations are testsed
when this behavior is enababled. The following operations will return
\fBMEMCACHED_NOT_SUPPORTED\fP when executed with the MEMCACHED_BEHAVIOR_USE_UDP
enabled: memcached_version(), memcached_stat(), memcached_get(),
memcached_get_by_key(), memcached_mget(), memcached_mget_by_key(),
memcached_fetch(), memcached_fetch_result(), memcached_value_fetch().
.sp
-All other operations are supported but are executed in a \(aqfire\-and\-forget\(aq
+All other operations are testsed but are executed in a \(aqfire\-and\-forget\(aq
mode, in which once the client has executed the operation, no attempt
will be made to ensure the operation has been received and acted on by the
server.
Makes the default hashing algorithm for keys use MD5. The value can be set
to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_JENKINS, MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR.
Each hash has it\(aqs advantages and it\(aqs weaknesses. If you don\(aqt know or don\(aqt care, just go with the default.
-Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable support for this hashing algorithm, configure and build libmemcached with the \-\-enable\-hash_hsieh.
+Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable tests for this hashing algorithm, configure and build libmemcached with the \-\-enable\-hash_hsieh.
.UNINDENT
.UNINDENT
.sp
.INDENT 0.0
.INDENT 3.5
.sp
-Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support.
+Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted tests.
and the hash to MEMCACHED_HASH_MD5.
.UNINDENT
.UNINDENT
Enable TCP_CORK behavior. This is only available as an option Linux.
MEMCACHED_NO_SERVERS is returned if no servers are available to test with.
MEMCACHED_NOT_SUPPORTED is returned if we were not able to determine
-if support was available. All other responses then MEMCACHED_SUCCESS
+if tests was available. All other responses then MEMCACHED_SUCCESS
report an error of some sort. This behavior also enables
MEMCACHED_BEHAVIOR_TCP_NODELAY when set.
.UNINDENT
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint64_t data);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) behavior can be modified by use memcached_behavior_set().
Default behavior is the library strives to be quick and accurate. Some
.INDENT 3.5
.sp
Causes libmemcached(3) to use the UDP transport when communicating
-with a memcached server. Not all I/O operations are supported
+with a memcached server. Not all I/O operations are testsed
when this behavior is enababled. The following operations will return
\fBMEMCACHED_NOT_SUPPORTED\fP when executed with the MEMCACHED_BEHAVIOR_USE_UDP
enabled: memcached_version(), memcached_stat(), memcached_get(),
memcached_get_by_key(), memcached_mget(), memcached_mget_by_key(),
memcached_fetch(), memcached_fetch_result(), memcached_value_fetch().
.sp
-All other operations are supported but are executed in a \(aqfire\-and\-forget\(aq
+All other operations are testsed but are executed in a \(aqfire\-and\-forget\(aq
mode, in which once the client has executed the operation, no attempt
will be made to ensure the operation has been received and acted on by the
server.
Makes the default hashing algorithm for keys use MD5. The value can be set
to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_JENKINS, MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR.
Each hash has it\(aqs advantages and it\(aqs weaknesses. If you don\(aqt know or don\(aqt care, just go with the default.
-Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable support for this hashing algorithm, configure and build libmemcached with the \-\-enable\-hash_hsieh.
+Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable tests for this hashing algorithm, configure and build libmemcached with the \-\-enable\-hash_hsieh.
.UNINDENT
.UNINDENT
.sp
.INDENT 0.0
.INDENT 3.5
.sp
-Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support.
+Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted tests.
and the hash to MEMCACHED_HASH_MD5.
.UNINDENT
.UNINDENT
Enable TCP_CORK behavior. This is only available as an option Linux.
MEMCACHED_NO_SERVERS is returned if no servers are available to test with.
MEMCACHED_NOT_SUPPORTED is returned if we were not able to determine
-if support was available. All other responses then MEMCACHED_SUCCESS
+if tests was available. All other responses then MEMCACHED_SUCCESS
report an error of some sort. This behavior also enables
MEMCACHED_BEHAVIOR_TCP_NODELAY when set.
.UNINDENT
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached.h>
-
-memcached_return_t
- memcached_callback_set (memcached_st *ptr,
- memcached_callback_t flag,
- void *data);
-
-void *
- memcached_callback_get (memcached_st *ptr,
- memcached_callback_t flag,
- memcached_return_t *error);
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_callback_set (memcached_st *ptr, memcached_callback_t flag, void *data);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void * memcached_callback_get (memcached_st *ptr, memcached_callback_t flag, memcached_return_t *error);
+.UNINDENT
.SH DESCRIPTION
.sp
libmemcached(3) can have callbacks set key execution points. These either
.sp
You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for any
of the callbacks
-.sp
-MEMCACHED_CALLBACK_CLEANUP_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_CLEANUP_FUNCTION
+.
When memcached_delete() is called this function will be excuted. At the
point of its execution all connections have been closed.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_CLONE_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_CLONE_FUNCTION
+.
When memcached_delete() is called this function will be excuted. At the
point of its execution all connections have been closed.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_PREFIX_KEY
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_PREFIX_KEY
+.
You can set a value which will be used to create a domain for your keys.
The value specified here will be prefixed to each of your keys. The value can not
be greater then MEMCACHED_PREFIX_KEY_MAX_SIZE \- 1 and will reduce MEMCACHED_MAX_KEY by
.sp
If you set a value with the value being NULL then the prefix key is disabled.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_USER_DATA
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_USER_DATA
+.
This allows you to store a pointer to a specifc piece of data. This can be
retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st
will copy the pointer to the clone.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_MALLOC_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_MALLOC_FUNCTION
+.
DEPRECATED: use memcached_set_memory_allocators instead.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_REALLOC_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_REALLOC_FUNCTION
+.
DEPRECATED: use memcached_set_memory_allocators instead.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_FREE_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_FREE_FUNCTION
+.
DEPRECATED: use memcached_set_memory_allocators instead.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_GET_FAILURE
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_GET_FAILURE
+.
This function implements the read through cache behavior. On failure of retrieval this callback will be called.
You are responsible for populating the result object provided. This result object will then be stored in the server and
returned to the calling process. You must clone the memcached_st in order to
The prototype for this is:
memcached_return_t (*memcached_trigger_key)(memcached_st *ptr, char *key, size_t key_length, memcached_result_st *result);
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_DELETE_TRIGGER
.INDENT 0.0
-.INDENT 3.5
+.TP
+.B MEMCACHED_CALLBACK_DELETE_TRIGGER
+.UNINDENT
.sp
-This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned
-in order to make use of it.
+This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned in order to make use of it.
.sp
-The prototype for this is:
-typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length);
-.UNINDENT
-.UNINDENT
+The prototype for this is: typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length);
.SH RETURN
.sp
memcached_callback_get() return the function or structure that was provided.
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached.h>
-
-memcached_return_t
- memcached_callback_set (memcached_st *ptr,
- memcached_callback_t flag,
- void *data);
-
-void *
- memcached_callback_get (memcached_st *ptr,
- memcached_callback_t flag,
- memcached_return_t *error);
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_callback_set (memcached_st *ptr, memcached_callback_t flag, void *data);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void * memcached_callback_get (memcached_st *ptr, memcached_callback_t flag, memcached_return_t *error);
+.UNINDENT
.SH DESCRIPTION
.sp
libmemcached(3) can have callbacks set key execution points. These either
.sp
You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for any
of the callbacks
-.sp
-MEMCACHED_CALLBACK_CLEANUP_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_CLEANUP_FUNCTION
+.
When memcached_delete() is called this function will be excuted. At the
point of its execution all connections have been closed.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_CLONE_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_CLONE_FUNCTION
+.
When memcached_delete() is called this function will be excuted. At the
point of its execution all connections have been closed.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_PREFIX_KEY
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_PREFIX_KEY
+.
You can set a value which will be used to create a domain for your keys.
The value specified here will be prefixed to each of your keys. The value can not
be greater then MEMCACHED_PREFIX_KEY_MAX_SIZE \- 1 and will reduce MEMCACHED_MAX_KEY by
.sp
If you set a value with the value being NULL then the prefix key is disabled.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_USER_DATA
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_USER_DATA
+.
This allows you to store a pointer to a specifc piece of data. This can be
retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st
will copy the pointer to the clone.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_MALLOC_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_MALLOC_FUNCTION
+.
DEPRECATED: use memcached_set_memory_allocators instead.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_REALLOC_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_REALLOC_FUNCTION
+.
DEPRECATED: use memcached_set_memory_allocators instead.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_FREE_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_FREE_FUNCTION
+.
DEPRECATED: use memcached_set_memory_allocators instead.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_GET_FAILURE
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_GET_FAILURE
+.
This function implements the read through cache behavior. On failure of retrieval this callback will be called.
You are responsible for populating the result object provided. This result object will then be stored in the server and
returned to the calling process. You must clone the memcached_st in order to
The prototype for this is:
memcached_return_t (*memcached_trigger_key)(memcached_st *ptr, char *key, size_t key_length, memcached_result_st *result);
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_DELETE_TRIGGER
.INDENT 0.0
-.INDENT 3.5
+.TP
+.B MEMCACHED_CALLBACK_DELETE_TRIGGER
+.UNINDENT
.sp
-This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned
-in order to make use of it.
+This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned in order to make use of it.
.sp
-The prototype for this is:
-typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length);
-.UNINDENT
-.UNINDENT
+The prototype for this is: typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length);
.SH RETURN
.sp
memcached_callback_get() return the function or structure that was provided.
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached.h>
-
-memcached_return_t
- memcached_callback_set (memcached_st *ptr,
- memcached_callback_t flag,
- void *data);
-
-void *
- memcached_callback_get (memcached_st *ptr,
- memcached_callback_t flag,
- memcached_return_t *error);
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_callback_set (memcached_st *ptr, memcached_callback_t flag, void *data);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void * memcached_callback_get (memcached_st *ptr, memcached_callback_t flag, memcached_return_t *error);
+.UNINDENT
.SH DESCRIPTION
.sp
libmemcached(3) can have callbacks set key execution points. These either
.sp
You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for any
of the callbacks
-.sp
-MEMCACHED_CALLBACK_CLEANUP_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_CLEANUP_FUNCTION
+.
When memcached_delete() is called this function will be excuted. At the
point of its execution all connections have been closed.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_CLONE_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_CLONE_FUNCTION
+.
When memcached_delete() is called this function will be excuted. At the
point of its execution all connections have been closed.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_PREFIX_KEY
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_PREFIX_KEY
+.
You can set a value which will be used to create a domain for your keys.
The value specified here will be prefixed to each of your keys. The value can not
be greater then MEMCACHED_PREFIX_KEY_MAX_SIZE \- 1 and will reduce MEMCACHED_MAX_KEY by
.sp
If you set a value with the value being NULL then the prefix key is disabled.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_USER_DATA
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_USER_DATA
+.
This allows you to store a pointer to a specifc piece of data. This can be
retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st
will copy the pointer to the clone.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_MALLOC_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_MALLOC_FUNCTION
+.
DEPRECATED: use memcached_set_memory_allocators instead.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_REALLOC_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_REALLOC_FUNCTION
+.
DEPRECATED: use memcached_set_memory_allocators instead.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_FREE_FUNCTION
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_FREE_FUNCTION
+.
DEPRECATED: use memcached_set_memory_allocators instead.
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_GET_FAILURE
.INDENT 0.0
-.INDENT 3.5
-.sp
+.TP
+.B MEMCACHED_CALLBACK_GET_FAILURE
+.
This function implements the read through cache behavior. On failure of retrieval this callback will be called.
You are responsible for populating the result object provided. This result object will then be stored in the server and
returned to the calling process. You must clone the memcached_st in order to
The prototype for this is:
memcached_return_t (*memcached_trigger_key)(memcached_st *ptr, char *key, size_t key_length, memcached_result_st *result);
.UNINDENT
-.UNINDENT
-.sp
-MEMCACHED_CALLBACK_DELETE_TRIGGER
.INDENT 0.0
-.INDENT 3.5
+.TP
+.B MEMCACHED_CALLBACK_DELETE_TRIGGER
+.UNINDENT
.sp
-This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned
-in order to make use of it.
+This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned in order to make use of it.
.sp
-The prototype for this is:
-typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length);
-.UNINDENT
-.UNINDENT
+The prototype for this is: typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length);
.SH RETURN
.sp
memcached_callback_get() return the function or structure that was provided.
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached.h>
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-void memcached_free (memcached_st *ptr);
-
-memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
-
-void memcached_servers_reset(memcached_st);
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void memcached_free (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void memcached_servers_reset(memcached_st);
+.UNINDENT
.SH DESCRIPTION
.sp
memcached_create() is used to create a \fBmemcached_st\fP structure that will then
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached.h>
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-void memcached_free (memcached_st *ptr);
-
-memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
-
-void memcached_servers_reset(memcached_st);
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void memcached_free (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void memcached_servers_reset(memcached_st);
+.UNINDENT
.SH DESCRIPTION
.sp
memcached_create() is used to create a \fBmemcached_st\fP structure that will then
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint64_t *value);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached(1) servers have the ability to increment and decrement keys
(overflow and underflow are not detected). This gives you the ability to use
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint64_t *value);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached(1) servers have the ability to increment and decrement keys
(overflow and underflow are not detected). This gives you the ability to use
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.ft C
#include <libmemcached/memcached.h>
-memcached_return_t
- memcached_delete (memcached_st *ptr,
- const char *key, size_t key_length,
- time_t expiration);
+memcached_return_t memcached_delete (memcached_st *ptr, const char *key, size_t key_length, time_t expiration);
-memcached_return_t
-memcached_delete_by_key (memcached_st *ptr,
- const char *master_key, size_t master_key_length,
- const char *key, size_t key_length,
- time_t expiration);
+memcached_return_t memcached_delete_by_key (memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, size_t key_length, time_t expiration);
.ft P
.fi
.SH DESCRIPTION
"replace" command with this key will also fail (the "set" command will
succeed, however). After the time passes, the item is finally deleted from server memory.
.sp
-Please note the the Danga memcached server removed support for expiration in
+Please note the the Danga memcached server removed tests for expiration in
the 1.4 version.
.SH RETURN
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.ft C
#include <libmemcached/memcached.h>
-memcached_return_t
- memcached_delete (memcached_st *ptr,
- const char *key, size_t key_length,
- time_t expiration);
+memcached_return_t memcached_delete (memcached_st *ptr, const char *key, size_t key_length, time_t expiration);
-memcached_return_t
-memcached_delete_by_key (memcached_st *ptr,
- const char *master_key, size_t master_key_length,
- const char *key, size_t key_length,
- time_t expiration);
+memcached_return_t memcached_delete_by_key (memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, size_t key_length, time_t expiration);
.ft P
.fi
.SH DESCRIPTION
"replace" command with this key will also fail (the "set" command will
succeed, however). After the time passes, the item is finally deleted from server memory.
.sp
-Please note the the Danga memcached server removed support for expiration in
+Please note the the Danga memcached server removed tests for expiration in
the 1.4 version.
.SH RETURN
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-SASL support
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
\fI\%http://libmemcached.org/\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
you have fetched all keys from the server. The function takes an array
of callbacks that it will use to execute on keys as they are found.
.sp
-Currently the binar protocol is not supported.
+Currently the binar protocol is not testsed.
.SH RETURN
.sp
A value of type \fBmemcached_return_t\fP is returned
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_get() is used to fetch an individual value from the server. You
must pass in a key and its length to fetch the object. You must supply
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
.sp
-All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
+All of the above functions are not testsed when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return
a \fBmemcached_return_t\fP, the error function parameter will be set to
\fBMEMCACHED_NOT_SUPPORTED\fP.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_get() is used to fetch an individual value from the server. You
must pass in a key and its length to fetch the object. You must supply
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
.sp
-All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
+All of the above functions are not testsed when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return
a \fBmemcached_return_t\fP, the error function parameter will be set to
\fBMEMCACHED_NOT_SUPPORTED\fP.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_get() is used to fetch an individual value from the server. You
must pass in a key and its length to fetch the object. You must supply
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
.sp
-All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
+All of the above functions are not testsed when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return
a \fBmemcached_return_t\fP, the error function parameter will be set to
\fBMEMCACHED_NOT_SUPPORTED\fP.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached.h>
-
-memcached_return_t
- memcached_flush_buffers (memcached_st *ptr);
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_flush_buffers (memcached_st *ptr);
+.UNINDENT
.SH DESCRIPTION
.sp
memcached_flush_buffers() is used in conjunction with
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3) memcached_behavior(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached.h>
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-void memcached_free (memcached_st *ptr);
-
-memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
-
-void memcached_servers_reset(memcached_st);
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void memcached_free (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void memcached_servers_reset(memcached_st);
+.UNINDENT
.SH DESCRIPTION
.sp
memcached_create() is used to create a \fBmemcached_st\fP structure that will then
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
of the memcached_st structure.
.sp
As of version 0.36 all hash methods have been placed into the library
-libhashkit(3) which is linked with libmemcached(3).
+libhashkit(3) which is linked with libmemcached(3). For more information please see its documentation.
.SH RETURN
.sp
A 32\-bit integer which is the result of hashing the given key.
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_behavior_set(3) libhashkit(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_get() is used to fetch an individual value from the server. You
must pass in a key and its length to fetch the object. You must supply
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
.sp
-All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
+All of the above functions are not testsed when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return
a \fBmemcached_return_t\fP, the error function parameter will be set to
\fBMEMCACHED_NOT_SUPPORTED\fP.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_get() is used to fetch an individual value from the server. You
must pass in a key and its length to fetch the object. You must supply
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
.sp
-All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
+All of the above functions are not testsed when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return
a \fBmemcached_return_t\fP, the error function parameter will be set to
\fBMEMCACHED_NOT_SUPPORTED\fP.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.ft C
#include <libmemcached/memcached.h>
-memcached_return_t
- memcached_set_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn mem_malloc,
- memcached_free_fn mem_free,
- memcached_realloc_fn mem_realloc,
- memcached_calloc_fn mem_calloc,
- void *context);
+memcached_return_t memcached_set_memory_allocators (memcached_st *ptr, memcached_malloc_fn mem_malloc, memcached_free_fn mem_free, memcached_realloc_fn mem_realloc, memcached_calloc_fn mem_calloc, void *context);
-void
- memcached_get_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn *mem_malloc,
- memcached_free_fn *mem_free,
- memcached_realloc_fn *mem_realloc,
- memcached_calloc_fn *mem_calloc);
+void memcached_get_memory_allocators (memcached_st *ptr, memcached_malloc_fn *mem_malloc, memcached_free_fn *mem_free, memcached_realloc_fn *mem_realloc, memcached_calloc_fn *mem_calloc);
-void *
- memcached_get_memory_allocators_context(const memcached_st *ptr);
+void * memcached_get_memory_allocators_context(const memcached_st *ptr);
-void *
- (*memcached_malloc_fn) (memcached_st *ptr, const size_t size,
- void *context);
+void * (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, void *context);
-void *
- (*memcached_realloc_fn) (memcached_st *ptr, void *mem,
- const size_t size,
- void *context);
+void * (*memcached_realloc_fn) (memcached_st *ptr, void *mem, const size_t size, void *context);
-void
- (*memcached_free_fn) (memcached_st *ptr, void *mem,
- void *context);
+void (*memcached_free_fn) (memcached_st *ptr, void *mem, void *context);
-void *
-(*memcached_calloc_fn) (memcached_st *ptr,
- size_t nelem,
- const size_t elsize,
- void *context);
+void * (*memcached_calloc_fn) (memcached_st *ptr, size_t nelem, const size_t elsize, void *context);
.ft P
.fi
.SH DESCRIPTION
.sp
libmemcached(3) allows you to specify your own memory allocators optimized
-for your application.
+for your application. This enables libmemcached to be used inside of applications that have their own malloc implementation.
.sp
memcached_set_memory_allocators() is used to set the memory allocators used
by the memcached instance specified by ptr. Please note that you cannot
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-Brian Aker, <\fI\%brian@tangent\fP.orf<gt>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-SASL support
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
\fI\%http://libmemcached.org/\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void *memcached_set_user_data (memcached_st *ptr, void *data);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) allows you to store a pointer to a user specific data inside
the memcached_st structure.
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint64_t *value);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached(1) servers have the ability to increment and decrement keys
(overflow and underflow are not detected). This gives you the ability to use
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint64_t *value);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached(1) servers have the ability to increment and decrement keys
(overflow and underflow are not detected). This gives you the ability to use
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
memcached_version (memcached_st *ptr)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_lib_version() is used to return a simple version string representing
the libmemcached version (version of the client library, not server)
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.ft C
#include <libmemcached/memcached.h>
-memcached_return_t
- memcached_set_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn mem_malloc,
- memcached_free_fn mem_free,
- memcached_realloc_fn mem_realloc,
- memcached_calloc_fn mem_calloc,
- void *context);
+memcached_return_t memcached_set_memory_allocators (memcached_st *ptr, memcached_malloc_fn mem_malloc, memcached_free_fn mem_free, memcached_realloc_fn mem_realloc, memcached_calloc_fn mem_calloc, void *context);
-void
- memcached_get_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn *mem_malloc,
- memcached_free_fn *mem_free,
- memcached_realloc_fn *mem_realloc,
- memcached_calloc_fn *mem_calloc);
+void memcached_get_memory_allocators (memcached_st *ptr, memcached_malloc_fn *mem_malloc, memcached_free_fn *mem_free, memcached_realloc_fn *mem_realloc, memcached_calloc_fn *mem_calloc);
-void *
- memcached_get_memory_allocators_context(const memcached_st *ptr);
+void * memcached_get_memory_allocators_context(const memcached_st *ptr);
-void *
- (*memcached_malloc_fn) (memcached_st *ptr, const size_t size,
- void *context);
+void * (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, void *context);
-void *
- (*memcached_realloc_fn) (memcached_st *ptr, void *mem,
- const size_t size,
- void *context);
+void * (*memcached_realloc_fn) (memcached_st *ptr, void *mem, const size_t size, void *context);
-void
- (*memcached_free_fn) (memcached_st *ptr, void *mem,
- void *context);
+void (*memcached_free_fn) (memcached_st *ptr, void *mem, void *context);
-void *
-(*memcached_calloc_fn) (memcached_st *ptr,
- size_t nelem,
- const size_t elsize,
- void *context);
+void * (*memcached_calloc_fn) (memcached_st *ptr, size_t nelem, const size_t elsize, void *context);
.ft P
.fi
.SH DESCRIPTION
.sp
libmemcached(3) allows you to specify your own memory allocators optimized
-for your application.
+for your application. This enables libmemcached to be used inside of applications that have their own malloc implementation.
.sp
memcached_set_memory_allocators() is used to set the memory allocators used
by the memcached instance specified by ptr. Please note that you cannot
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-Brian Aker, <\fI\%brian@tangent\fP.orf<gt>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_get() is used to fetch an individual value from the server. You
must pass in a key and its length to fetch the object. You must supply
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
.sp
-All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
+All of the above functions are not testsed when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return
a \fBmemcached_return_t\fP, the error function parameter will be set to
\fBMEMCACHED_NOT_SUPPORTED\fP.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_get() is used to fetch an individual value from the server. You
must pass in a key and its length to fetch the object. You must supply
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
.sp
-All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
+All of the above functions are not testsed when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return
a \fBmemcached_return_t\fP, the error function parameter will be set to
\fBMEMCACHED_NOT_SUPPORTED\fP.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_get() is used to fetch an individual value from the server. You
must pass in a key and its length to fetch the object. You must supply
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
.sp
-All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
+All of the above functions are not testsed when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return
a \fBmemcached_return_t\fP, the error function parameter will be set to
\fBMEMCACHED_NOT_SUPPORTED\fP.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_get() is used to fetch an individual value from the server. You
must pass in a key and its length to fetch the object. You must supply
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
.sp
-All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
+All of the above functions are not testsed when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in
\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return
a \fBmemcached_return_t\fP, the error function parameter will be set to
\fBMEMCACHED_NOT_SUPPORTED\fP.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-Manage pools
-.SH LIBRARY
-.sp
-C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached_pool.h>
-
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
-
-memcached_st *
- memcached_pool_destroy(memcached_pool_st* pool);
-
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
-
-memcached_return_t
- memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-memcached_return_t
- memcached_pool_behavior_set(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t data)
-
-memcached_return_t
- memcached_pool_behavior_get(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t *value)
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_pool_st * memcached_pool_create(memcached_st* mmc, int initial, int max);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_destroy(memcached_pool_st* pool);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_set(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ data\fP)
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_get(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ *value\fP)
+.UNINDENT
+.sp
+Compile and link with \-lmemcachedutil \-lmemcached
.SH DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-Manage pools
-.SH LIBRARY
-.sp
-C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached_pool.h>
-
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
-
-memcached_st *
- memcached_pool_destroy(memcached_pool_st* pool);
-
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
-
-memcached_return_t
- memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-memcached_return_t
- memcached_pool_behavior_set(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t data)
-
-memcached_return_t
- memcached_pool_behavior_get(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t *value)
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_pool_st * memcached_pool_create(memcached_st* mmc, int initial, int max);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_destroy(memcached_pool_st* pool);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_set(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ data\fP)
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_get(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ *value\fP)
+.UNINDENT
+.sp
+Compile and link with \-lmemcachedutil \-lmemcached
.SH DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-Manage pools
-.SH LIBRARY
-.sp
-C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached_pool.h>
-
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
-
-memcached_st *
- memcached_pool_destroy(memcached_pool_st* pool);
-
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
-
-memcached_return_t
- memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-memcached_return_t
- memcached_pool_behavior_set(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t data)
-
-memcached_return_t
- memcached_pool_behavior_get(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t *value)
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_pool_st * memcached_pool_create(memcached_st* mmc, int initial, int max);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_destroy(memcached_pool_st* pool);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_set(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ data\fP)
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_get(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ *value\fP)
+.UNINDENT
+.sp
+Compile and link with \-lmemcachedutil \-lmemcached
.SH DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-Manage pools
-.SH LIBRARY
-.sp
-C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached_pool.h>
-
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
-
-memcached_st *
- memcached_pool_destroy(memcached_pool_st* pool);
-
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
-
-memcached_return_t
- memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-memcached_return_t
- memcached_pool_behavior_set(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t data)
-
-memcached_return_t
- memcached_pool_behavior_get(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t *value)
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_pool_st * memcached_pool_create(memcached_st* mmc, int initial, int max);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_destroy(memcached_pool_st* pool);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_set(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ data\fP)
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_get(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ *value\fP)
+.UNINDENT
+.sp
+Compile and link with \-lmemcachedutil \-lmemcached
.SH DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-Manage pools
-.SH LIBRARY
-.sp
-C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached_pool.h>
-
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
-
-memcached_st *
- memcached_pool_destroy(memcached_pool_st* pool);
-
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
-
-memcached_return_t
- memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-memcached_return_t
- memcached_pool_behavior_set(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t data)
-
-memcached_return_t
- memcached_pool_behavior_get(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t *value)
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_pool_st * memcached_pool_create(memcached_st* mmc, int initial, int max);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_destroy(memcached_pool_st* pool);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_set(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ data\fP)
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_get(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ *value\fP)
+.UNINDENT
+.sp
+Compile and link with \-lmemcachedutil \-lmemcached
.SH DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-Manage pools
-.SH LIBRARY
-.sp
-C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached_pool.h>
-
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
-
-memcached_st *
- memcached_pool_destroy(memcached_pool_st* pool);
-
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
-
-memcached_return_t
- memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-memcached_return_t
- memcached_pool_behavior_set(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t data)
-
-memcached_return_t
- memcached_pool_behavior_get(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t *value)
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_pool_st * memcached_pool_create(memcached_st* mmc, int initial, int max);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_destroy(memcached_pool_st* pool);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_set(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ data\fP)
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_get(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ *value\fP)
+.UNINDENT
+.sp
+Compile and link with \-lmemcachedutil \-lmemcached
.SH DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-Manage pools
-.SH LIBRARY
-.sp
-C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached_pool.h>
-
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
-
-memcached_st *
- memcached_pool_destroy(memcached_pool_st* pool);
-
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
-
-memcached_return_t
- memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-memcached_return_t
- memcached_pool_behavior_set(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t data)
-
-memcached_return_t
- memcached_pool_behavior_get(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t *value)
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_pool_st * memcached_pool_create(memcached_st* mmc, int initial, int max);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_destroy(memcached_pool_st* pool);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st * memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_set(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ data\fP)
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_return_t memcached_pool_behavior_get(memcached_pool_st\fI\ *pool\fP, memcached_behavior_t\fI\ flag\fP, uint64_t\fI\ *value\fP)
+.UNINDENT
+.sp
+Compile and link with \-lmemcachedutil \-lmemcached
.SH DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
\fI\%https://launchpad.net/libmemcached\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
.sp
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
.sp
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
.sp
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
.sp
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
.sp
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
.sp
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
.sp
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
.sp
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
.sp
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-SASL support
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
\fI\%http://libmemcached.org/\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-SASL support
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
\fI\%http://libmemcached.org/\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t memcached_server_count (memcached_st *ptr);
-memcached_return_t
- memcached_server_add (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_udp (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add_udp (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_unix_socket (memcached_st *ptr,
- const char *socket);
+memcached_return_t memcached_server_add_unix_socket (memcached_st *ptr, const char *socket);
-memcached_return_t
- memcached_server_push (memcached_st *ptr,
- const memcached_server_st *list);
+memcached_return_t memcached_server_push (memcached_st *ptr, const memcached_server_st *list);
-memcached_server_instance_st
- memcached_server_by_key (const memcached_st *ptr,
- const char *key,
- size_t key_length,
- memcached_return_t *error);
+memcached_server_instance_st memcached_server_by_key (const memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error);
-memcached_server_instance_st
- memcached_server_get_last_disconnect (const memcached_st *ptr)
+memcached_server_instance_st memcached_server_get_last_disconnect (const memcached_st *ptr)
-memcached_return_t
- memcached_server_cursor(const memcached_st *ptr,
- const memcached_server_fn *callback,
- void *context,
- uint32_t number_of_callbacks);
+memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) performs operations on a list of hosts. The order of these
hosts determine routing to keys. Functions are provided to add keys to
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t memcached_server_count (memcached_st *ptr);
-memcached_return_t
- memcached_server_add (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_udp (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add_udp (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_unix_socket (memcached_st *ptr,
- const char *socket);
+memcached_return_t memcached_server_add_unix_socket (memcached_st *ptr, const char *socket);
-memcached_return_t
- memcached_server_push (memcached_st *ptr,
- const memcached_server_st *list);
+memcached_return_t memcached_server_push (memcached_st *ptr, const memcached_server_st *list);
-memcached_server_instance_st
- memcached_server_by_key (const memcached_st *ptr,
- const char *key,
- size_t key_length,
- memcached_return_t *error);
+memcached_server_instance_st memcached_server_by_key (const memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error);
-memcached_server_instance_st
- memcached_server_get_last_disconnect (const memcached_st *ptr)
+memcached_server_instance_st memcached_server_get_last_disconnect (const memcached_st *ptr)
-memcached_return_t
- memcached_server_cursor(const memcached_st *ptr,
- const memcached_server_fn *callback,
- void *context,
- uint32_t number_of_callbacks);
+memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) performs operations on a list of hosts. The order of these
hosts determine routing to keys. Functions are provided to add keys to
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t memcached_server_count (memcached_st *ptr);
-memcached_return_t
- memcached_server_add (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_udp (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add_udp (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_unix_socket (memcached_st *ptr,
- const char *socket);
+memcached_return_t memcached_server_add_unix_socket (memcached_st *ptr, const char *socket);
-memcached_return_t
- memcached_server_push (memcached_st *ptr,
- const memcached_server_st *list);
+memcached_return_t memcached_server_push (memcached_st *ptr, const memcached_server_st *list);
-memcached_server_instance_st
- memcached_server_by_key (const memcached_st *ptr,
- const char *key,
- size_t key_length,
- memcached_return_t *error);
+memcached_server_instance_st memcached_server_by_key (const memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error);
-memcached_server_instance_st
- memcached_server_get_last_disconnect (const memcached_st *ptr)
+memcached_server_instance_st memcached_server_get_last_disconnect (const memcached_st *ptr)
-memcached_return_t
- memcached_server_cursor(const memcached_st *ptr,
- const memcached_server_fn *callback,
- void *context,
- uint32_t number_of_callbacks);
+memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) performs operations on a list of hosts. The order of these
hosts determine routing to keys. Functions are provided to add keys to
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t memcached_server_count (memcached_st *ptr);
-memcached_return_t
- memcached_server_add (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_udp (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add_udp (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_unix_socket (memcached_st *ptr,
- const char *socket);
+memcached_return_t memcached_server_add_unix_socket (memcached_st *ptr, const char *socket);
-memcached_return_t
- memcached_server_push (memcached_st *ptr,
- const memcached_server_st *list);
+memcached_return_t memcached_server_push (memcached_st *ptr, const memcached_server_st *list);
-memcached_server_instance_st
- memcached_server_by_key (const memcached_st *ptr,
- const char *key,
- size_t key_length,
- memcached_return_t *error);
+memcached_server_instance_st memcached_server_by_key (const memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error);
-memcached_server_instance_st
- memcached_server_get_last_disconnect (const memcached_st *ptr)
+memcached_server_instance_st memcached_server_get_last_disconnect (const memcached_st *ptr)
-memcached_return_t
- memcached_server_cursor(const memcached_st *ptr,
- const memcached_server_fn *callback,
- void *context,
- uint32_t number_of_callbacks);
+memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) performs operations on a list of hosts. The order of these
hosts determine routing to keys. Functions are provided to add keys to
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t memcached_server_count (memcached_st *ptr);
-memcached_return_t
- memcached_server_add (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_udp (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add_udp (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_unix_socket (memcached_st *ptr,
- const char *socket);
+memcached_return_t memcached_server_add_unix_socket (memcached_st *ptr, const char *socket);
-memcached_return_t
- memcached_server_push (memcached_st *ptr,
- const memcached_server_st *list);
+memcached_return_t memcached_server_push (memcached_st *ptr, const memcached_server_st *list);
-memcached_server_instance_st
- memcached_server_by_key (const memcached_st *ptr,
- const char *key,
- size_t key_length,
- memcached_return_t *error);
+memcached_server_instance_st memcached_server_by_key (const memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error);
-memcached_server_instance_st
- memcached_server_get_last_disconnect (const memcached_st *ptr)
+memcached_server_instance_st memcached_server_get_last_disconnect (const memcached_st *ptr)
-memcached_return_t
- memcached_server_cursor(const memcached_st *ptr,
- const memcached_server_fn *callback,
- void *context,
- uint32_t number_of_callbacks);
+memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) performs operations on a list of hosts. The order of these
hosts determine routing to keys. Functions are provided to add keys to
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_server_error_reset (memcached_server_instance_st list);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) operates on a list of hosts which are stored in
memcached_server_st structures. You should not modify these structures
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_server_error_reset (memcached_server_instance_st list);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) operates on a list of hosts which are stored in
memcached_server_st structures. You should not modify these structures
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_server_error_reset (memcached_server_instance_st list);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) operates on a list of hosts which are stored in
memcached_server_st structures. You should not modify these structures
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t memcached_server_count (memcached_st *ptr);
-memcached_return_t
- memcached_server_add (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_udp (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add_udp (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_unix_socket (memcached_st *ptr,
- const char *socket);
+memcached_return_t memcached_server_add_unix_socket (memcached_st *ptr, const char *socket);
-memcached_return_t
- memcached_server_push (memcached_st *ptr,
- const memcached_server_st *list);
+memcached_return_t memcached_server_push (memcached_st *ptr, const memcached_server_st *list);
-memcached_server_instance_st
- memcached_server_by_key (const memcached_st *ptr,
- const char *key,
- size_t key_length,
- memcached_return_t *error);
+memcached_server_instance_st memcached_server_by_key (const memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error);
-memcached_server_instance_st
- memcached_server_get_last_disconnect (const memcached_st *ptr)
+memcached_server_instance_st memcached_server_get_last_disconnect (const memcached_st *ptr)
-memcached_return_t
- memcached_server_cursor(const memcached_st *ptr,
- const memcached_server_fn *callback,
- void *context,
- uint32_t number_of_callbacks);
+memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) performs operations on a list of hosts. The order of these
hosts determine routing to keys. Functions are provided to add keys to
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t memcached_server_count (memcached_st *ptr);
-memcached_return_t
- memcached_server_add (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_udp (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add_udp (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_unix_socket (memcached_st *ptr,
- const char *socket);
+memcached_return_t memcached_server_add_unix_socket (memcached_st *ptr, const char *socket);
-memcached_return_t
- memcached_server_push (memcached_st *ptr,
- const memcached_server_st *list);
+memcached_return_t memcached_server_push (memcached_st *ptr, const memcached_server_st *list);
-memcached_server_instance_st
- memcached_server_by_key (const memcached_st *ptr,
- const char *key,
- size_t key_length,
- memcached_return_t *error);
+memcached_server_instance_st memcached_server_by_key (const memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error);
-memcached_server_instance_st
- memcached_server_get_last_disconnect (const memcached_st *ptr)
+memcached_server_instance_st memcached_server_get_last_disconnect (const memcached_st *ptr)
-memcached_return_t
- memcached_server_cursor(const memcached_st *ptr,
- const memcached_server_fn *callback,
- void *context,
- uint32_t number_of_callbacks);
+memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) performs operations on a list of hosts. The order of these
hosts determine routing to keys. Functions are provided to add keys to
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
uint32_t memcached_server_count (memcached_st *ptr);
-memcached_return_t
- memcached_server_add (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_udp (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+memcached_return_t memcached_server_add_udp (memcached_st *ptr, const char *hostname, in_port_t port);
-memcached_return_t
- memcached_server_add_unix_socket (memcached_st *ptr,
- const char *socket);
+memcached_return_t memcached_server_add_unix_socket (memcached_st *ptr, const char *socket);
-memcached_return_t
- memcached_server_push (memcached_st *ptr,
- const memcached_server_st *list);
+memcached_return_t memcached_server_push (memcached_st *ptr, const memcached_server_st *list);
-memcached_server_instance_st
- memcached_server_by_key (const memcached_st *ptr,
- const char *key,
- size_t key_length,
- memcached_return_t *error);
+memcached_server_instance_st memcached_server_by_key (const memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error);
-memcached_server_instance_st
- memcached_server_get_last_disconnect (const memcached_st *ptr)
+memcached_server_instance_st memcached_server_get_last_disconnect (const memcached_st *ptr)
-memcached_return_t
- memcached_server_cursor(const memcached_st *ptr,
- const memcached_server_fn *callback,
- void *context,
- uint32_t number_of_callbacks);
+memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) performs operations on a list of hosts. The order of these
hosts determine routing to keys. Functions are provided to add keys to
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_server_error_reset (memcached_server_instance_st list);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) operates on a list of hosts which are stored in
memcached_server_st structures. You should not modify these structures
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
.sp
-.nf
-.ft C
#include <libmemcached/memcached.h>
-
-memcached_st *memcached_create (memcached_st *ptr);
-
-void memcached_free (memcached_st *ptr);
-
-memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
-
-void memcached_servers_reset(memcached_st);
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_create (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void memcached_free (memcached_st *ptr);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
+.UNINDENT
+.INDENT 0.0
+.TP
+.B void memcached_servers_reset(memcached_st);
+.UNINDENT
.SH DESCRIPTION
.sp
memcached_create() is used to create a \fBmemcached_st\fP structure that will then
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
.sp
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
.sp
If you are looking for performance, memcached_set() with non\-blocking IO is
the fastest way to store data on the server.
.sp
-All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
+All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi\-datagram requests
and the current server implementation sets a datagram size to 1400 bytes. Due
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
memcached(1) libmemached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.ft C
#include <libmemcached/memcached.h>
-memcached_return_t
- memcached_set_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn mem_malloc,
- memcached_free_fn mem_free,
- memcached_realloc_fn mem_realloc,
- memcached_calloc_fn mem_calloc,
- void *context);
+memcached_return_t memcached_set_memory_allocators (memcached_st *ptr, memcached_malloc_fn mem_malloc, memcached_free_fn mem_free, memcached_realloc_fn mem_realloc, memcached_calloc_fn mem_calloc, void *context);
-void
- memcached_get_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn *mem_malloc,
- memcached_free_fn *mem_free,
- memcached_realloc_fn *mem_realloc,
- memcached_calloc_fn *mem_calloc);
+void memcached_get_memory_allocators (memcached_st *ptr, memcached_malloc_fn *mem_malloc, memcached_free_fn *mem_free, memcached_realloc_fn *mem_realloc, memcached_calloc_fn *mem_calloc);
-void *
- memcached_get_memory_allocators_context(const memcached_st *ptr);
+void * memcached_get_memory_allocators_context(const memcached_st *ptr);
-void *
- (*memcached_malloc_fn) (memcached_st *ptr, const size_t size,
- void *context);
+void * (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, void *context);
-void *
- (*memcached_realloc_fn) (memcached_st *ptr, void *mem,
- const size_t size,
- void *context);
+void * (*memcached_realloc_fn) (memcached_st *ptr, void *mem, const size_t size, void *context);
-void
- (*memcached_free_fn) (memcached_st *ptr, void *mem,
- void *context);
+void (*memcached_free_fn) (memcached_st *ptr, void *mem, void *context);
-void *
-(*memcached_calloc_fn) (memcached_st *ptr,
- size_t nelem,
- const size_t elsize,
- void *context);
+void * (*memcached_calloc_fn) (memcached_st *ptr, size_t nelem, const size_t elsize, void *context);
.ft P
.fi
.SH DESCRIPTION
.sp
libmemcached(3) allows you to specify your own memory allocators optimized
-for your application.
+for your application. This enables libmemcached to be used inside of applications that have their own malloc implementation.
.sp
memcached_set_memory_allocators() is used to set the memory allocators used
by the memcached instance specified by ptr. Please note that you cannot
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-Brian Aker, <\fI\%brian@tangent\fP.orf<gt>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.ft C
#include <libmemcached/memcached.h>
-memcached_return_t
- memcached_set_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn mem_malloc,
- memcached_free_fn mem_free,
- memcached_realloc_fn mem_realloc,
- memcached_calloc_fn mem_calloc,
- void *context);
+memcached_return_t memcached_set_memory_allocators (memcached_st *ptr, memcached_malloc_fn mem_malloc, memcached_free_fn mem_free, memcached_realloc_fn mem_realloc, memcached_calloc_fn mem_calloc, void *context);
-void
- memcached_get_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn *mem_malloc,
- memcached_free_fn *mem_free,
- memcached_realloc_fn *mem_realloc,
- memcached_calloc_fn *mem_calloc);
+void memcached_get_memory_allocators (memcached_st *ptr, memcached_malloc_fn *mem_malloc, memcached_free_fn *mem_free, memcached_realloc_fn *mem_realloc, memcached_calloc_fn *mem_calloc);
-void *
- memcached_get_memory_allocators_context(const memcached_st *ptr);
+void * memcached_get_memory_allocators_context(const memcached_st *ptr);
-void *
- (*memcached_malloc_fn) (memcached_st *ptr, const size_t size,
- void *context);
+void * (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, void *context);
-void *
- (*memcached_realloc_fn) (memcached_st *ptr, void *mem,
- const size_t size,
- void *context);
+void * (*memcached_realloc_fn) (memcached_st *ptr, void *mem, const size_t size, void *context);
-void
- (*memcached_free_fn) (memcached_st *ptr, void *mem,
- void *context);
+void (*memcached_free_fn) (memcached_st *ptr, void *mem, void *context);
-void *
-(*memcached_calloc_fn) (memcached_st *ptr,
- size_t nelem,
- const size_t elsize,
- void *context);
+void * (*memcached_calloc_fn) (memcached_st *ptr, size_t nelem, const size_t elsize, void *context);
.ft P
.fi
.SH DESCRIPTION
.sp
libmemcached(3) allows you to specify your own memory allocators optimized
-for your application.
+for your application. This enables libmemcached to be used inside of applications that have their own malloc implementation.
.sp
memcached_set_memory_allocators() is used to set the memory allocators used
by the memcached instance specified by ptr. Please note that you cannot
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-Brian Aker, <\fI\%brian@tangent\fP.orf<gt>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-SASL support
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
\fI\%http://libmemcached.org/\fP
.SH AUTHOR
.sp
+Brian Aker, <\fI\%brian@tangent.org\fP>
+.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void *memcached_set_user_data (memcached_st *ptr, void *data);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) allows you to store a pointer to a user specific data inside
the memcached_st structure.
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void *context);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) has the ability to query a memcached server (or collection
of servers) for their current state. Queries to find state return a
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void *context);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) has the ability to query a memcached server (or collection
of servers) for their current state. Queries to find state return a
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void *context);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) has the ability to query a memcached server (or collection
of servers) for their current state. Queries to find state return a
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void *context);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) has the ability to query a memcached server (or collection
of servers) for their current state. Queries to find state return a
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void *context);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) has the ability to query a memcached server (or collection
of servers) for their current state. Queries to find state return a
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void *context);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) has the ability to query a memcached server (or collection
of servers) for their current state. Queries to find state return a
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-Get error string
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
memcached_return_t rc);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_strerror() takes a \fBmemcached_return_t\fP value and returns a string
describing the error.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void *memcached_set_user_data (memcached_st *ptr, void *data);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) allows you to store a pointer to a user specific data inside
the memcached_st structure.
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
unsigned int verbosity);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_verbosity() modifies the "verbosity" of the
memcached(1) servers referenced in the \fBmemcached_st\fP parameter.
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
memcached_version (memcached_st *ptr)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_lib_version() is used to return a simple version string representing
the libmemcached version (version of the client library, not server)
.SH AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
-.SH SEE ALSO
+.SS SEE ALSO
.sp
memcached(1) libmemcached(3) memcached_strerror(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.\" Man page generated from reStructeredText.
.
.sp
-Check memcached server capabilities
+Check the server for compatibility and capabilities
.SH SYNOPSIS
-.sp
-.nf
-.ft C
-memcat [\-h hostname] [\-p port] [\-c] [\-v] [\-t n]
-.ft P
-.fi
-.SH DESCRIPTION
-.sp
-\fBmemcapable\fP connects to the specified memcached server and tries to
-determine its capabilities by running the various commands and verifying
-the response.
-.SH OPTIONS
-.sp
-The following options are supported:
.INDENT 0.0
.TP
-.BI \-h \ hostname
-.
+.B \-h hostname
+.sp
Specify the hostname to connect to. The default is \fIlocalhost\fP
+.UNINDENT
+.INDENT 0.0
.TP
-.BI \-p \ port
-.
+.B \-p port
+.sp
Specify the port number to connect to. The default is \fI11211\fP
+.UNINDENT
+.INDENT 0.0
.TP
.B \-c
.
Generate a coredump when it detects an error from the server.
+.UNINDENT
+.INDENT 0.0
.TP
.B \-v
.
Print out the comparison when it detects an error from the server.
+.UNINDENT
+.INDENT 0.0
.TP
-.BI \-t \ n
-.
+.B \-t n
+.sp
Set the timeout from an IO operation to/from the server to \fIn\fP seconds.
.UNINDENT
+.SH DESCRIPTION
+.sp
+\fBmemcapable\fP connects to the specified memcached server and tries to
+determine its capabilities by running the various commands and verifying
+the response.
.SH LIMITATIONS
.sp
The current version of memcapable will only verify the binary protocol.
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
Copy a set of keys to stdout
.SH SYNOPSIS
-.sp
-.nf
-.ft C
-memcat [options] key key ...
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B \-\-help
+.UNINDENT
.SH DESCRIPTION
.sp
\fBmemcat\fP outputs to stdout the value a single or multiple set of keys
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
Copies files to a collection of memcached servers
.SH SYNOPSIS
-.sp
-.nf
-.ft C
-memcp [options] file file <servers>
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B \-\-help
+.UNINDENT
.SH DESCRIPTION
.sp
\fBmemcp\fP copies one or more files into memcached(1) servers.
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
Dump a list of keys from a server.
.SH SYNOPSIS
-.sp
-.nf
-.ft C
-memdump [options]
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B \-\-help
+.UNINDENT
.SH DESCRIPTION
.sp
\fBmemdump\fP currently dumps a list of "keys" from all servers that
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
Translate a memcached error code to a string
.SH SYNOPSIS
-.sp
-.nf
-.ft C
-memerror [options] error_code
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B \-\-help
+.UNINDENT
.SH DESCRIPTION
.sp
\fBmemerror\fP translate an error code from libmemcached(3) to a human
readable string.
.sp
For a full list of operations run the tool with the \fB\-\-help\fP option.
-.SH HOME
+.SS HOME
.sp
To find out more infoerroration please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
+.SS AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
Reset a server or list of servers
.SH SYNOPSIS
-.sp
-.nf
-.ft C
-memflush [options]
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B \-\-help
+.UNINDENT
.SH DESCRIPTION
.sp
\fBmemflush\fP resets the contents of memcached(1) servers.
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memrm \- Remove a key(s) from a collection of memcached servers
.SH SYNOPSIS
-.sp
-.nf
-.ft C
-memrm [options] key key ...
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B \-\-help
+.UNINDENT
.SH DESCRIPTION
.sp
\fBmemrm\fP removes items, specified by key, from memcached(1) servers.
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
..
.\" Man page generated from reStructeredText.
.
-.sp
-memslap \- Load testing and benchmarking tool for memcached
.SH SYNOPSIS
-.sp
-.nf
-.ft C
-memslap [options]
-.ft P
-.fi
.SH DESCRIPTION
.sp
\fBmemslap\fP is a load generation and benchmark tool for memcached(1)
servers. It generates configurable workload such as threads, concurrencies, connections,
run time, overwrite, miss rate, key size, value size, get/set proportion,
-expected throughput, and so on. Furthermore, it also supports data
-verification, expire\-time verification, UDP, binary protocol, facebook test,
-replication test, multi\-get and reconnection, etc.
-.sp
-Memslap manages network connections like memcached with
-libevent. Each thread of memslap is bound with a CPU core, all
-the threads don\(aqt communicate with each other, and there are several socket
-connections in each thread. Each connection keeps key size distribution,
-value size distribution, and command distribution by itself.
+expected throughput, and so on.
.sp
You can specify servers via the \fB\-\-servers\fP option or via the
environment variable \fBMEMCACHED_SERVERS\fP.
-.SH FEATURES
-.sp
-Memslap is developed to for the following purposes:
-.sp
-Manages network connections with libevent asynchronously.
-.sp
-Set both TCP and UDP up to use non\-blocking IO.
-.sp
-Improves parallelism: higher performance in multi\-threads environments.
-.sp
-Improves time efficiency: faster processing speed.
-.sp
-Generates key and value more efficiently; key size distribution and value size distribution are configurable.
-.sp
-Supports get, multi\-get, and set commands; command distribution is configurable.
-.sp
-Supports controllable miss rate and overwrite rate.
-.sp
-Supports data and expire\-time verification.
-.sp
-Supports dumping statistic information periodically.
-.sp
-Supports thousands of TCP connections.
-.sp
-Supports binary protocol.
-.sp
-Supports facebook test (set with TCP and multi\-get with UDP) and replication test.
-.SH DETAILS
-.SS Effective implementation of network.
-.sp
-For memslap, both TCP and UDP use non\-blocking network IO. All
-the network events are managed by libevent as memcached. The network module
-of memslap is similar to memcached. Libevent can ensure
-memslap can handle network very efficiently.
-.SS Effective implementation of multi\-threads and concurrency
-.sp
-Memslap has the similar implementation of multi\-threads to
-memcached. Memslap creates one or more self\-governed threads;
-each thread is bound with one CPU core if the system supports setting CPU
-core affinity.
-.sp
-In addition, each thread has a libevent to manage the events of the network;
-each thread has one or more self\-governed concurrencies; and each
-concurrency has one or more socket connections. All the concurrencies don’t
-communicate with each other even though they are in the same thread.
-.sp
-Memslap can create thousands of socket connections, and each
-concurrency has tens of socket connections. Each concurrency randomly or
-sequentially selects one socket connection from its socket connection pool
-to run, so memslap can ensure each concurrency handles one
-socket connection at any given time. Users can specify the number of
-concurrency and socket connections of each concurrency according to their
-expected workload.
-.SS Effective implementation of generating key and value
-.sp
-In order to improve time efficiency and space efficiency,
-memslap creates a random characters table with 10M characters. All the
-suffixes of keys and values are generated from this random characters table.
-.sp
-Memslap uses the offset in the character table and the length
-of the string to identify a string. It can save much memory.
-Each key contains two parts, a prefix and a suffix. The prefix is an
-uint64_t, 8 bytes. In order to verify the data set before,
-memslap need to ensure each key is unique, so it uses the prefix to identify
-a key. The prefix cannot include illegal characters, such as ‘r’, ‘n’,
-‘0’ and ‘ ‘. And memslap has an algorithm to ensure that.
-.sp
-Memslap doesn’t generate all the objects (key\-value pairs) at
-the beginning. It only generates enough objects to fill the task window
-(default 10K objects) of each concurrency. Each object has the following
-basic information, key prefix, key suffix offset in the character table, key
-length, value offset in the character table, and value length.
-.sp
-In the work process, each concurrency sequentially or randomly selects an
-object from the window to do set operation or get operation. At the same
-time, each concurrency kicks objects out of its window and adds new object
-into it.
-.SS Simple but useful task scheduling
-.sp
-Memslap uses libevent to schedule all the concurrencies of
-threads, and each concurrency schedules tasks based on the local task
-window. Memslap assumes that if each concurrency keeps the same
-key distribution, value distribution and commands distribution, from
-outside, memslap keeps all the distribution as a whole.
-Each task window includes a lot of objects, each object stores its basic
-information, such as key, value, expire time, and so on. At any time, all
-the objects in the window keep the same and fixed key and value
-distribution. If an object is overwritten, the value of the object will be
-updated. Memslap verifies the data or expire\-time according to
-the object information stored in the task window.
-.sp
-Libevent selects which concurrency to handle based on a specific network
-event. Then the concurrency selects which command (get or set) to operate
-based on the command distribution. If it needs to kick out an old object and
-add a new object, in order to keep the same key and value distribution, the
-new object must have the same key length and value length.
-.sp
-If memcached server has two cache layers (memory and SSD), running
-memslap with different window sizes can get different cache
-miss rates. If memslap adds enough objects into the windows at
-the beginning, and the cache of memcached cannot store all the objects
-initialized, then memslap will get some objects from the second
-cache layer. It causes the first cache layer to miss. So the user can
-specify the window size to get the expected miss rate of the first cache
-layer.
-.SS Useful implementation of multi\-servers , UDP, TCP, multi\-get and binary protocol
-.sp
-Because each thread is self\-governed, memslap can assign
-different threads to handle different memcached servers. This is just one of
-the ways in which memslap supports multiple servers. The only
-limitation is that the number of servers cannot be greater than the number
-of threads. The other way to support multiple servers is for replication
-test. Each concurrency has one socket connection to each memcached server.
-For the implementation, memslap can set some objects to one
-memcached server, and get these objects from the other servers.
-.sp
-By default, Memslap does single get. If the user specifies
-multi\-get option, memslap will collect enough get commands and
-pack and send the commands together.
-.sp
-Memslap supports both the ASCII protocol and binary protocol,
-but it runs on the ASCII protocol by default.
-Memslap by default runs on the TCP protocol, but it also
-supports UDP. Because UDP is unreliable, dropped packages and out\-of\-order
-packages may occur. Memslap creates a memory buffer to handle
-these problems. Memslap tries to read all the response data of
-one command from the server and reorders the response data. If some packages
-get lost, the waiting timeout mechanism can ensure half\-baked packages will
-be discarded and the next command will be sent.
-.SH USAGE
-.sp
-Below are some usage samples:
-.sp
-memslap \-s 127.0.0.1:11211 \-S 5s
-.sp
-memslap \-s 127.0.0.1:11211 \-t 2m \-v 0.2 \-e 0.05 \-b
-.sp
-memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-w 40k \-S 20s \-o 0.2
-.sp
-memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-T 4 \-c 128 \-d 20 \-P 40k
-.sp
-memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-d 50 \-a \-n 40
-.sp
-memslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m
-.sp
-memslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m \-p 2
-.sp
-The user must specify one server at least to run memslap. The
-rest of the parameters have default values, as shown below:
-.sp
-Thread number = 1 Concurrency = 16
-.sp
-Run time = 600 seconds Configuration file = NULL
-.sp
-Key size = 64 Value size = 1024
-.sp
-Get/set = 9:1 Window size = 10k
-.sp
-Execute number = 0 Single get = true
-.sp
-Multi\-get = false Number of sockets of each concurrency = 1
-.sp
-Reconnect = false Data verification = false
-.sp
-Expire\-time verification = false ASCII protocol = true
-.sp
-Binary protocol = false Dumping statistic information
-.sp
-periodically = false
-.sp
-Overwrite proportion = 0% UDP = false
-.sp
-TCP = true Limit throughput = false
-.sp
-Facebook test = false Replication test = false
-.SS Key size, value size and command distribution.
-.sp
-All the distributions are read from the configuration file specified by user
-with “—cfg_cmd” option. If the user does not specify a configuration file,
-memslap will run with the default distribution (key size = 64,
-value size = 1024, get/set = 9:1). For information on how to edit the
-configuration file, refer to the “Configuration File” section.
-.sp
-The minimum key size is 16 bytes; the maximum key size is 250 bytes. The
-precision of proportion is 0.001. The proportion of distribution will be
-rounded to 3 decimal places.
-.sp
-The minimum value size is 1 bytes; the maximum value size is 1M bytes. The
-precision of proportion is 0.001. The proportion of distribution will be
-rounded to 3 decimal places.
-Currently, memslap only supports set and get commands. And it
-supports 100% set and 100% get. For 100% get, it will preset some objects to
-the server.
-.SS Multi\-thread and concurrency
-.sp
-The high performance of memslap benefits from the special
-schedule of thread and concurrency. It’s important to specify the proper
-number of them. The default number of threads is 1; the default number of
-concurrency is 16. The user can use “—threads” and “\-\-concurrency” to
-specify these variables.
-.sp
-If the system supports setting CPU affinity and the number of threads
-specified by the user is greater than 1, memslap will try to
-bind each thread to a different CPU core. So if you want to get the best
-performance memslap, it is better to specify the number of
-thread equal to the number of CPU cores. The number of threads specified by
-the user can also be less or greater than the number of CPU cores. Because
-of the limitation of implementation, the number of concurrencies could be
-the multiple of the number of threads.
-.INDENT 0.0
-.IP 1. 3
-.
-For 8 CPU cores system
-.UNINDENT
-.sp
-For example:
-.sp
-\-\-threads=2 \-\-concurrency=128
-.sp
-\-\-threads=8 \-\-concurrency=128
-.sp
-\-\-threads=8 \-\-concurrency=256
-.sp
-\-\-threads=12 \-\-concurrency=144
-.INDENT 0.0
-.IP 2. 3
-.
-For 16 CPU cores system
-.UNINDENT
-.sp
-For example:
-.sp
-\-\-threads=8 \-\-concurrency=128
-.sp
-\-\-threads=16 \-\-concurrency=256
-.sp
-\-\-threads=16 \-\-concurrency=512
-.sp
-\-\-threads=24 \-\-concurrency=288
-.sp
-The memslap performs very well, when
-used to test the performance of memcached servers.
-Most of the time, the bottleneck is the network or
-the server. If for some reason the user wants to
-limit the performance of memslap, there
-are two ways to do this:
-.sp
-Decrease the number of threads and concurrencies.
-Use the option “\-\-tps” that memslap
-provides to limit the throughput. This option allows
-the user to get the expected throughput. For
-example, assume that the maximum throughput is 50
-kops/s for a specific configuration, you can specify
-the throughput equal to or less than the maximum
-throughput using “\-\-tps” option.
-.SS Window size
-.sp
-Most of the time, the user does not need to specify the window size. The
-default window size is 10k. For Schooner Memcached, the user can specify
-different window sizes to get different cache miss rates based on the test
-case. Memslap supports cache miss rate between 0% and 100%.
-If you use this utility to test the performance of Schooner Memcached, you
-can specify a proper window size to get the expected cache miss rate. The
-formula for calculating window size is as follows:
-.sp
-Assume that the key size is 128 bytes, and the value size is 2048 bytes, and
-concurrency=128.
-.sp
-1. Small cache cache_size=1M, 100% cache miss (all data get from SSD).
-win_size=10k
-.INDENT 0.0
-.IP 2. 3
-.
-cache_size=4G
-.UNINDENT
-.sp
-(1). cache miss rate 0%
-.sp
-win_size=8k
-.sp
-(2). cache miss rate 5%
-.sp
-win_size=11k
-.INDENT 0.0
-.IP 3. 3
-.
-cache_size=16G
-.UNINDENT
-.sp
-(1). cache miss rate 0%
-.sp
-win_size=32k
-.sp
-(2). cache miss
-.sp
-rate 5%
-.sp
-win_size=46k
-.sp
-The formula for calculating window size for cache miss rate 0%:
-.sp
-cache_size / concurrency / (key_size + value_size) * 0.5
-.sp
-The formula for calculating window size for cache miss rate 5%:
-.sp
-cache_size / concurrency / (key_size + value_size) * 0.7
-.SS Verification
-.sp
-Memslap supports both data verification and expire\-time
-verification. The user can use "\-\-verify=" or "\-v" to specify the proportion
-of data verification. In theory, it supports 100% data verification. The
-user can use "\-\-exp_verify=" or "\-e" to specify the proportion of
-expire\-time verification. In theory, it supports 100% expire\-time
-verification. Specify the "\-\-verbose" options to get more detailed error
-information.
-.sp
-For example: \-\-exp_verify=0.01 –verify=0.1 , it means that 1% of the objects
-set with expire\-time, 10% of the objects gotten will be verified. If the
-objects are gotten, memslap will verify the expire\-time and
-value.
-.SS multi\-servers and multi\-clients
-.sp
-Memslap supports multi\-servers based on self\-governed thread.
-There is a limitation that the number of servers cannot be greater than the
-number of threads. Memslap assigns one thread to handle one
-server at least. The user can use the "\-\-servers=" or "\-s" option to specify
-multi\-servers.
-.sp
-For example:
-.sp
-\-\-servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 \-\-threads=6 \-\-concurrency=36
-.sp
-The above command means that there are 6 threads, with each thread having 6
-concurrencies and that threads 0 and 3 handle server 0 (10.1.1.1); threads 1
-and 4 handle server 1 (10.1.1.2); and thread 2 and 5 handle server 2
-(10.1.1.3).
-.sp
-All the threads and concurrencies in memslap are self\-governed.
-.sp
-So is memslap. The user can start up several
-memslap instances. The user can run memslap on different client
-machines to communicate with the same memcached server at the same. It is
-recommended that the user start different memslap on different
-machines using the same configuration.
-.SS Run with execute number mode or time mode
-.sp
-The default memslap runs with time mode. The default run time
-is 10 minutes. If it times out, memslap will exit. Do not
-specify both execute number mode and time mode at the same time; just
-specify one instead.
-.sp
-For example:
-.sp
-\-\-time=30s (It means the test will run 30 seconds.)
-.sp
-\-\-execute_number=100000 (It means that after running 100000 commands, the test will exit.)
-.SS Dump statistic information periodically.
-.sp
-The user can use "\-\-stat_freq=" or "\-S" to specify the frequency.
-.sp
-For example:
-.sp
-\-\-stat_freq=20s
-.sp
-Memslap will dump the statistics of the commands (get and set) at the frequency of every 20
-seconds.
-.sp
-For more information on the format of dumping statistic information, refer to “Format of Output” section.
-.SS Multi\-get
-.sp
-The user can use "\-\-division=" or "\-d" to specify multi\-get keys count.
-Memslap by default does single get with TCP. Memslap also supports data
-verification and expire\-time verification for multi\-get.
-.sp
-Memslap supports multi\-get with both TCP and UDP. Because of
-the different implementation of the ASCII protocol and binary protocol,
-there are some differences between the two. For the ASCII protocol,
-memslap sends one “multi\-get” to the server once. For the
-binary protocol, memslap sends several single get commands
-together as “multi\-get” to the server.
-.SS UDP and TCP
-.sp
-Memslap supports both UDP and TCP. For TCP,
-memslap does not reconnect the memcached server if socket connections are
-lost. If all the socket connections are lost or memcached server crashes,
-memslap will exit. If the user specifies the “\-\-reconnect”
-option when socket connections are lost, it will reconnect them.
-.sp
-User can use “\-\-udp” to enable the UDP feature, but UDP comes with some
-limitations:
-.sp
-UDP cannot set data more than 1400 bytes.
-.sp
-UDP is not supported by the binary protocol because the binary protocol of
-memcached does not support that.
-.sp
-UDP doesn’t support reconnection.
-.SS Facebook test
-.sp
-Set data with TCP and multi\-get with UDP. Specify the following options:
-.sp
-"\-\-facebook \-\-division=50"
-.sp
-If you want to create thousands of TCP connections, specify the
-.sp
-"\-\-conn_sock=" option.
-.sp
-For example: \-\-facebook \-\-division=50 \-\-conn_sock=200
-.sp
-The above command means that memslap will do facebook test,
-each concurrency has 200 socket TCP connections and one UDP socket.
-.sp
-Memslap sets objects with the TCP socket, and multi\-gets 50
-objects once with the UDP socket.
-.sp
-If you specify "\-\-division=50", the key size must be less that 25 bytes
-because the UDP packet size is 1400 bytes.
-.SS Replication test
-.sp
-For replication test, the user must specify at least two memcached servers.
-The user can use “—rep_write=” option to enable feature.
-.sp
-For example:
-.sp
-\-\-servers=10.1.1.1:11211,10.1.1.2:11212 –rep_write=2
-.sp
-The above command means that there are 2 replication memcached servers,
-memslap will set objects to both server 0 and server 1, get
-objects which are set to server 0 before from server 1, and also get objects
-which are set to server 1 before from server 0. If server 0 crashes,
-memslap will only get objects from server 1. If server 0 comes
-back to life again, memslap will reconnect server 0. If both
-server 0 and server 1 crash, memslap will exit.
-.SS Supports thousands of TCP connections
-.sp
-Start memslap with "\-\-conn_sock=" or "\-n" to enable this
-feature. Make sure that your system can support opening thousands of files
-and creating thousands of sockets. However, this feature does not support
-reconnection if sockets disconnect.
-.sp
-For example:
-.sp
-\-\-threads=8 \-\-concurrency=128 \-\-conn_sock=128
-.sp
-The above command means that memslap starts up 8 threads, each
-thread has 16 concurrencies, each concurrency has 128 TCP socket
-connections, and the total number of TCP socket connections is 128 * 128 =
-16384.
-.SS Supports binary protocol
-.sp
-Start memslap with "\-\-binary" or "\-B" options to enable this
-feature. It supports all the above features except UDP, because the latest
-memcached 1.3.3 does not implement binary UDP protocol.
-.sp
-For example:
-.sp
-\-\-binary
-.sp
-Since memcached 1.3.3 doesn\(aqt implement binary UDP protocol,
-memslap does not support UDP. In addition, memcached 1.3.3 does not support
-multi\-get. If you specify "\-\-division=50" option, it just sends 50 get
-commands together as “mulit\-get” to the server.
-.SH CONFIGURATION FILE
-.sp
-This section describes the format of the configuration file. By default
-when no configuration file is specified memslap reads the default
-one located at ~/.memslap.cnf.
-.sp
-Below is a sample configuration file:
-.sp
-.nf
-.ft C
-***************************************************************************
-#comments should start with \(aq#\(aq
-#key
-#start_len end_len proportion
-#
-#key length range from start_len to end_len
-#start_len must be equal to or greater than 16
-#end_len must be equal to or less than 250
-#start_len must be equal to or greater than end_len
-#memslap will generate keys according to the key range
-#proportion: indicates keys generated from one range accounts for the total
-generated keys
-#
-#example1: key range 16~100 accounts for 80%
-# key range 101~200 accounts for 10%
-# key range 201~250 accounts for 10%
-# total should be 1 (0.8+0.1+0.1 = 1)
-#
-# 16 100 0.8
-# 101 200 0.1
-# 201 249 0.1
-#
-#example2: all keys length are 128 bytes
-#
-# 128 128 1
-key
-128 128 1
-#value
-#start_len end_len proportion
-#
-#value length range from start_len to end_len
-#start_len must be equal to or greater than 1
-#end_len must be equal to or less than 1M
-#start_len must be equal to or greater than end_len
-#memslap will generate values according to the value range
-#proportion: indicates values generated from one range accounts for the
-total generated values
-#
-#example1: value range 1~1000 accounts for 80%
-# value range 1001~10000 accounts for 10%
-# value range 10001~100000 accounts for 10%
-# total should be 1 (0.8+0.1+0.1 = 1)
-#
-# 1 1000 0.8
-# 1001 10000 0.1
-# 10001 100000 0.1
-#
-#example2: all value length are 128 bytes
-#
-# 128 128 1
-value
-2048 2048 1
-#cmd
-#cmd_type cmd_proportion
-#
-#currently memslap only supports get and set command.
-#
-#cmd_type
-#set 0
-#get 1
-#
-#example: set command accounts for 50%
-# get command accounts for 50%
-# total should be 1 (0.5+0.5 = 1)
-#
-# cmd
-# 0 0.5
-# 1 0.5
-cmd
-0 0.1
-1.0 0.9
-.ft P
-.fi
-.SH FORMAT OF OUTPUT
-.sp
-At the beginning, memslap displays some configuration information as follows:
-.sp
-servers : 127.0.0.1:11211
-.sp
-threads count: 1
-.sp
-concurrency: 16
-.sp
-run time: 20s
-.sp
-windows size: 10k
-.sp
-set proportion: set_prop=0.10
-.sp
-get proportion: get_prop=0.90
-.SS Where
-.sp
-servers : "servers"
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The servers used by memslap.
-.UNINDENT
-.UNINDENT
-.sp
-threads count
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The number of threads memslap runs with.
-.UNINDENT
-.UNINDENT
-.sp
-concurrency
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The number of concurrencies memslap runs with.
-.UNINDENT
-.UNINDENT
-.sp
-run time
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How long to run memslap.
-.UNINDENT
-.UNINDENT
-.sp
-windows size
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The task window size of each concurrency.
-.UNINDENT
-.UNINDENT
-.sp
-set proportion
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The proportion of set command.
-.UNINDENT
-.UNINDENT
-.sp
-get proportion
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The proportion of get command.
-.UNINDENT
-.UNINDENT
-.sp
-The output of dynamic statistics is something like this:
-.sp
-.nf
-.ft C
-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
-Get Statistics
-Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
-Avg(us) Std_dev Geo_dist
-Period 5 345826 69165 65.3 0 27 2198 203
-95.43 177.29
-Global 20 1257935 62896 71.8 0 26 3791 224
-117.79 192.60
-
-
-Set Statistics
-Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
-Avg(us) Std_dev Geo_dist
-Period 5 38425 7685 7.3 0 42 628 240
-88.05 220.21
-Global 20 139780 6989 8.0 0 37 3790 253
-117.93 224.83
-
-
-Total Statistics
-Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
-Avg(us) Std_dev Geo_dist
-Period 5 384252 76850 72.5 0 27 2198 207
-94.72 181.18
-Global 20 1397720 69886 79.7 0 26 3791 227
-117.93 195.60
-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
-.ft P
-.fi
-.SS Where
-.sp
-Get Statistics
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Statistics information of get command
-.UNINDENT
-.UNINDENT
-.sp
-Set Statistics
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Statistics information of set command
-.UNINDENT
-.UNINDENT
-.sp
-Total Statistics
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Statistics information of both get and set command
-.UNINDENT
-.UNINDENT
-.sp
-Period
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Result within a period
-.UNINDENT
-.UNINDENT
-.sp
-Global
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Accumulated results
-.UNINDENT
-.UNINDENT
-.sp
-Ops
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Total operations
-.UNINDENT
-.UNINDENT
-.sp
-TPS
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Throughput, operations/second
-.UNINDENT
-.UNINDENT
-.sp
-Net
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The rate of network
-.UNINDENT
-.UNINDENT
-.sp
-Get_miss
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How many objects can’t be gotten
-.UNINDENT
-.UNINDENT
-.sp
-Min
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The minimum response time
-.UNINDENT
-.UNINDENT
-.sp
-Max
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The maximum response time
-.UNINDENT
-.UNINDENT
-.sp
-Avg:
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The average response time
-.UNINDENT
-.UNINDENT
-.sp
-Std_dev
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Standard deviation of response time
-.UNINDENT
-.UNINDENT
-.sp
-Geo_dist
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Geometric distribution based on natural exponential function
-.UNINDENT
-.UNINDENT
-.sp
-At the end, memslap will output something like this:
-.sp
-.nf
-.ft C
-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
-Get Statistics (1257956 events)
- Min: 26
- Max: 3791
- Avg: 224
- Geo: 192.60
- Std: 116.23
- Log2 Dist:
- 4: 0 10 84490 215345
- 8: 484890 459823 12543 824
- 12: 31
-
- Set Statistics (139782 events)
- Min: 37
- Max: 3790
- Avg: 253
- Geo: 224.84
- Std: 116.83
- Log2 Dist:
- 4: 0 0 4200 16988
- 8: 50784 65574 2064 167
- 12: 5
-
- Total Statistics (1397738 events)
- Min: 26
- Max: 3791
- Avg: 227
- Geo: 195.60
- Std: 116.60
- Log2 Dist:
- 4: 0 10 88690 232333
- 8: 535674 525397 14607 991
- 12: 36
-
-cmd_get: 1257969
-cmd_set: 139785
-get_misses: 0
-verify_misses: 0
-verify_failed: 0
-expired_get: 0
-unexpired_unget: 0
-written_bytes: 242516030
-read_bytes: 1003702556
-object_bytes: 152086080
-packet_disorder: 0
-packet_drop: 0
-udp_timeout: 0
-
-Run time: 20.0s Ops: 1397754 TPS: 69817 Net_rate: 59.4M/s
-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
-.ft P
-.fi
-.SS Where
-.sp
-Get Statistics
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Get statistics of response time
-.UNINDENT
-.UNINDENT
-.sp
-Set Statistics
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Set statistics of response time
-.UNINDENT
-.UNINDENT
-.sp
-Total Statistics
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Both get and set statistics of response time
-.UNINDENT
-.UNINDENT
-.sp
-Min
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The accumulated and minimum response time
-.UNINDENT
-.UNINDENT
-.sp
-Max
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The accumulated and maximum response time
-.UNINDENT
-.UNINDENT
-.sp
-Avg
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The accumulated and average response time
-.UNINDENT
-.UNINDENT
-.sp
-Std
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Standard deviation of response time
-.UNINDENT
-.UNINDENT
-.sp
-Log2 Dist
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Geometric distribution based on logarithm 2
-.UNINDENT
-.UNINDENT
-.sp
-cmd_get
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Total get commands done
-.UNINDENT
-.UNINDENT
-.sp
-cmd_set
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Total set commands done
-.UNINDENT
-.UNINDENT
-.sp
-get_misses
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How many objects can’t be gotten from server
-.UNINDENT
-.UNINDENT
-.sp
-verify_misses
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How many objects need to verify but can’t get them
-.UNINDENT
-.UNINDENT
-.sp
-verify_failed
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How many objects with insistent value
-.UNINDENT
-.UNINDENT
-.sp
-expired_get
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How many objects are expired but we get them
-.UNINDENT
-.UNINDENT
-.sp
-unexpired_unget
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How many objects are unexpired but we can’t get them
-.UNINDENT
-.UNINDENT
-.sp
-written_bytes
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Total written bytes
-.UNINDENT
-.UNINDENT
-.sp
-read_bytes
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Total read bytes
-.UNINDENT
-.UNINDENT
-.sp
-object_bytes
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Total object bytes
-.UNINDENT
-.UNINDENT
-.sp
-packet_disorder
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How many UDP packages are disorder
-.UNINDENT
-.UNINDENT
-.sp
-packet_drop
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How many UDP packages are lost
-.UNINDENT
-.UNINDENT
-.sp
-udp_timeout
-.INDENT 0.0
-.INDENT 3.5
-.sp
-How many times UDP time out happen
-.UNINDENT
-.UNINDENT
-.sp
-Run time
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Total run time
-.UNINDENT
-.UNINDENT
-.sp
-Ops
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Total operations
-.UNINDENT
-.UNINDENT
-.sp
-TPS
-.INDENT 0.0
-.INDENT 3.5
-.sp
-Throughput, operations/second
-.UNINDENT
-.UNINDENT
-.sp
-Net_rate
-.INDENT 0.0
-.INDENT 3.5
-.sp
-The average rate of network
-.UNINDENT
-.UNINDENT
-.SH OPTIONS
-.INDENT 0.0
-.TP
-.B \-s, \-\-servers=
-.
-List one or more servers to connect. Servers count must be less than
-threads count. e.g.: \-\-servers=localhost:1234,localhost:11211
-.TP
-.B \-T, \-\-threads=
-.
-Number of threads to startup, better equal to CPU numbers. Default 8.
-.TP
-.B \-c, \-\-concurrency=
-.
-Number of concurrency to simulate with load. Default 128.
-.TP
-.B \-n, \-\-conn_sock=
-.
-Number of TCP socks per concurrency. Default 1.
-.TP
-.B \-x, \-\-execute_number=
-.
-Number of operations(get and set) to execute for the
-given test. Default 1000000.
-.TP
-.B \-t, \-\-time=
-.
-How long the test to run, suffix: s\-seconds, m\-minutes, h\-hours,
-d\-days e.g.: \-\-time=2h.
-.TP
-.B \-F, \-\-cfg_cmd=
-.
-Load the configure file to get command,key and value distribution list.
-.TP
-.B \-w, \-\-win_size=
-.
-Task window size of each concurrency, suffix: K, M e.g.: \-\-win_size=10k.
-Default 10k.
-.TP
-.B \-X, \-\-fixed_size=
-.
-Fixed length of value.
-.TP
-.B \-v, \-\-verify=
-.
-The proportion of date verification, e.g.: \-\-verify=0.01
-.TP
-.B \-d, \-\-division=
-.
-Number of keys to multi\-get once. Default 1, means single get.
-.TP
-.B \-S, \-\-stat_freq=
-.
-Frequency of dumping statistic information. suffix: s\-seconds,
-m\-minutes, e.g.: \-\-resp_freq=10s.
-.TP
-.B \-e, \-\-exp_verify=
-.
-The proportion of objects with expire time, e.g.: \-\-exp_verify=0.01.
-Default no object with expire time
-.TP
-.B \-o, \-\-overwrite=
-.
-The proportion of objects need overwrite, e.g.: \-\-overwrite=0.01.
-Default never overwrite object.
-.UNINDENT
-.INDENT 0.0
-.TP
-.B \-R, \-\-reconnect
-.
-Reconnect support, when connection is closed it will be reconnected.
-.TP
-.B \-U, \-\-udp
-.
-UDP support, default memslap uses TCP, TCP port and UDP port of
-server must be same.
-.TP
-.B \-a, \-\-facebook
-.
-Whether it enables facebook test feature, set with TCP and multi\-get with UDP.
-.TP
-.B \-B, \-\-binary
-.
-Whether it enables binary protocol. Default with ASCII protocol.
-.UNINDENT
-.INDENT 0.0
-.TP
-.B \-P, \-\-tps=
-.
-Expected throughput, suffix: K, e.g.: \-\-tps=10k.
-.TP
-.B \-p, \-\-rep_write=
-.
-The first nth servers can write data, e.g.: \-\-rep_write=2.
-.UNINDENT
-.INDENT 0.0
-.TP
-.B \-b, \-\-verbose
-.
-Whether it outputs detailed information when verification fails.
-.TP
-.B \-h, \-\-help
-.
-Display this message and then exit.
-.TP
-.B \-V, \-\-version
-.
-Display the version of the application and then exit.
-.UNINDENT
-.SH EXAMPLES
-.sp
-memslap \-s 127.0.0.1:11211 \-S 5s
-.sp
-memslap \-s 127.0.0.1:11211 \-t 2m \-v 0.2 \-e 0.05 \-b
-.sp
-memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-w 40k \-S 20s \-o 0.2
-.sp
-memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-T 4 \-c 128 \-d 20 \-P 40k
-.sp
-memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-d 50 \-a \-n 40
-.sp
-memslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m
-.sp
-memslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m \-p 2
-.SH HOME
-.sp
-To find out more information please check:
-\fI\%http://launchpad.org/libmemcached\fP
-.SH AUTHORS
-.sp
-Mingqiang Zhuang <\fI\%mingqiangzhuang@hengtiansoft.com\fP> (Schooner Technolgy)
-Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
.sp
-memcached(1) libmemcached(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
.sp
memstat \- Display the operating status of a single or group of memcached servers
.SH SYNOPSIS
-.sp
-.nf
-.ft C
-memstat [options]
-.ft P
-.fi
+.INDENT 0.0
+.TP
+.B \-\-help
+.UNINDENT
.SH DESCRIPTION
.sp
\fBmemstat\fP dumps the state of memcached(1) servers.
.sp
To find out more information please check:
\fI\%http://launchpad.org/libmemcached\fP
-.SH AUTHOR
-.sp
-Brian Aker, <\fI\%brian@tangent.org\fP>
-.sp
-Mark Atwood, <\fI\%mark@fallenpegasus.com\fP>
.SH SEE ALSO
.sp
memcached(1) libmemcached(3)
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
-2011, Brian Aker
+2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\"
.
--- /dev/null
+==================================================
+memaslap - Load testing and benchmarking a server
+==================================================
+
+
+--------
+SYNOPSIS
+--------
+
+.. program:: memaslap
+
+.. option:: --help
+
+-----------
+DESCRIPTION
+-----------
+
+
+\ **memaslap**\ is a load generation and benchmark tool for memcached(1)
+servers. It generates configurable workload such as threads, concurrencies, connections,
+run time, overwrite, miss rate, key size, value size, get/set proportion,
+expected throughput, and so on. Furthermore, it also testss data
+verification, expire-time verification, UDP, binary protocol, facebook test,
+replication test, multi-get and reconnection, etc.
+
+Memslap manages network connections like memcached with
+libevent. Each thread of memaslap is bound with a CPU core, all
+the threads don't communicate with each other, and there are several socket
+connections in each thread. Each connection keeps key size distribution,
+value size distribution, and command distribution by itself.
+
+You can specify servers via the \ **--servers**\ option or via the
+environment variable \ ``MEMCACHED_SERVERS``\ .
+
+
+--------
+FEATURES
+--------
+
+
+Memslap is developed to for the following purposes:
+
+
+Manages network connections with libevent asynchronously.
+
+
+
+Set both TCP and UDP up to use non-blocking IO.
+
+
+
+Improves parallelism: higher performance in multi-threads environments.
+
+
+
+Improves time efficiency: faster processing speed.
+
+
+
+Generates key and value more efficiently; key size distribution and value size distribution are configurable.
+
+
+
+Supports get, multi-get, and set commands; command distribution is configurable.
+
+
+
+Supports controllable miss rate and overwrite rate.
+
+
+
+Supports data and expire-time verification.
+
+
+
+Supports dumping statistic information periodically.
+
+
+
+Supports thousands of TCP connections.
+
+
+
+Supports binary protocol.
+
+
+
+Supports facebook test (set with TCP and multi-get with UDP) and replication test.
+
+
+
+
+-------
+DETAILS
+-------
+
+
+Effective implementation of network.
+____________________________________
+
+
+For memaslap, both TCP and UDP use non-blocking network IO. All
+the network events are managed by libevent as memcached. The network module
+of memaslap is similar to memcached. Libevent can ensure
+memaslap can handle network very efficiently.
+
+
+Effective implementation of multi-threads and concurrency
+_________________________________________________________
+
+
+Memslap has the similar implementation of multi-threads to
+memcached. Memslap creates one or more self-governed threads;
+each thread is bound with one CPU core if the system testss setting CPU
+core affinity.
+
+In addition, each thread has a libevent to manage the events of the network;
+each thread has one or more self-governed concurrencies; and each
+concurrency has one or more socket connections. All the concurrencies don’t
+communicate with each other even though they are in the same thread.
+
+Memslap can create thousands of socket connections, and each
+concurrency has tens of socket connections. Each concurrency randomly or
+sequentially selects one socket connection from its socket connection pool
+to run, so memaslap can ensure each concurrency handles one
+socket connection at any given time. Users can specify the number of
+concurrency and socket connections of each concurrency according to their
+expected workload.
+
+
+Effective implementation of generating key and value
+____________________________________________________
+
+
+In order to improve time efficiency and space efficiency,
+memaslap creates a random characters table with 10M characters. All the
+suffixes of keys and values are generated from this random characters table.
+
+Memslap uses the offset in the character table and the length
+of the string to identify a string. It can save much memory.
+Each key contains two parts, a prefix and a suffix. The prefix is an
+uint64_t, 8 bytes. In order to verify the data set before,
+memaslap need to ensure each key is unique, so it uses the prefix to identify
+a key. The prefix cannot include illegal characters, such as ‘\r’, ‘\n’,
+‘\0’ and ‘ ‘. And memaslap has an algorithm to ensure that.
+
+Memslap doesn’t generate all the objects (key-value pairs) at
+the beginning. It only generates enough objects to fill the task window
+(default 10K objects) of each concurrency. Each object has the following
+basic information, key prefix, key suffix offset in the character table, key
+length, value offset in the character table, and value length.
+
+In the work process, each concurrency sequentially or randomly selects an
+object from the window to do set operation or get operation. At the same
+time, each concurrency kicks objects out of its window and adds new object
+into it.
+
+
+Simple but useful task scheduling
+_________________________________
+
+
+Memslap uses libevent to schedule all the concurrencies of
+threads, and each concurrency schedules tasks based on the local task
+window. Memslap assumes that if each concurrency keeps the same
+key distribution, value distribution and commands distribution, from
+outside, memaslap keeps all the distribution as a whole.
+Each task window includes a lot of objects, each object stores its basic
+information, such as key, value, expire time, and so on. At any time, all
+the objects in the window keep the same and fixed key and value
+distribution. If an object is overwritten, the value of the object will be
+updated. Memslap verifies the data or expire-time according to
+the object information stored in the task window.
+
+Libevent selects which concurrency to handle based on a specific network
+event. Then the concurrency selects which command (get or set) to operate
+based on the command distribution. If it needs to kick out an old object and
+add a new object, in order to keep the same key and value distribution, the
+new object must have the same key length and value length.
+
+If memcached server has two cache layers (memory and SSD), running
+memaslap with different window sizes can get different cache
+miss rates. If memaslap adds enough objects into the windows at
+the beginning, and the cache of memcached cannot store all the objects
+initialized, then memaslap will get some objects from the second
+cache layer. It causes the first cache layer to miss. So the user can
+specify the window size to get the expected miss rate of the first cache
+layer.
+
+
+Useful implementation of multi-servers , UDP, TCP, multi-get and binary protocol
+________________________________________________________________________________
+
+
+Because each thread is self-governed, memaslap can assign
+different threads to handle different memcached servers. This is just one of
+the ways in which memaslap testss multiple servers. The only
+limitation is that the number of servers cannot be greater than the number
+of threads. The other way to tests multiple servers is for replication
+test. Each concurrency has one socket connection to each memcached server.
+For the implementation, memaslap can set some objects to one
+memcached server, and get these objects from the other servers.
+
+By default, Memslap does single get. If the user specifies
+multi-get option, memaslap will collect enough get commands and
+pack and send the commands together.
+
+Memslap testss both the ASCII protocol and binary protocol,
+but it runs on the ASCII protocol by default.
+Memslap by default runs on the TCP protocol, but it also
+testss UDP. Because UDP is unreliable, dropped packages and out-of-order
+packages may occur. Memslap creates a memory buffer to handle
+these problems. Memslap tries to read all the response data of
+one command from the server and reorders the response data. If some packages
+get lost, the waiting timeout mechanism can ensure half-baked packages will
+be discarded and the next command will be sent.
+
+
+
+-----
+USAGE
+-----
+
+
+Below are some usage samples:
+
+
+memaslap -s 127.0.0.1:11211 -S 5s
+
+
+
+memaslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b
+
+
+
+memaslap -s 127.0.0.1:11211 -F config -t 2m -w 40k -S 20s -o 0.2
+
+
+
+memaslap -s 127.0.0.1:11211 -F config -t 2m -T 4 -c 128 -d 20 -P 40k
+
+
+
+memaslap -s 127.0.0.1:11211 -F config -t 2m -d 50 -a -n 40
+
+
+
+memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m
+
+
+
+memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2
+
+
+
+The user must specify one server at least to run memaslap. The
+rest of the parameters have default values, as shown below:
+
+Thread number = 1 Concurrency = 16
+
+Run time = 600 seconds Configuration file = NULL
+
+Key size = 64 Value size = 1024
+
+Get/set = 9:1 Window size = 10k
+
+Execute number = 0 Single get = true
+
+Multi-get = false Number of sockets of each concurrency = 1
+
+Reconnect = false Data verification = false
+
+Expire-time verification = false ASCII protocol = true
+
+Binary protocol = false Dumping statistic information
+
+periodically = false
+
+Overwrite proportion = 0% UDP = false
+
+TCP = true Limit throughput = false
+
+Facebook test = false Replication test = false
+
+Key size, value size and command distribution.
+______________________________________________
+
+
+All the distributions are read from the configuration file specified by user
+with “—cfg_cmd” option. If the user does not specify a configuration file,
+memaslap will run with the default distribution (key size = 64,
+value size = 1024, get/set = 9:1). For information on how to edit the
+configuration file, refer to the “Configuration File” section.
+
+The minimum key size is 16 bytes; the maximum key size is 250 bytes. The
+precision of proportion is 0.001. The proportion of distribution will be
+rounded to 3 decimal places.
+
+The minimum value size is 1 bytes; the maximum value size is 1M bytes. The
+precision of proportion is 0.001. The proportion of distribution will be
+rounded to 3 decimal places.
+Currently, memaslap only testss set and get commands. And it
+testss 100% set and 100% get. For 100% get, it will preset some objects to
+the server.
+
+
+Multi-thread and concurrency
+____________________________
+
+
+The high performance of memaslap benefits from the special
+schedule of thread and concurrency. It’s important to specify the proper
+number of them. The default number of threads is 1; the default number of
+concurrency is 16. The user can use “—threads” and “--concurrency” to
+specify these variables.
+
+If the system testss setting CPU affinity and the number of threads
+specified by the user is greater than 1, memaslap will try to
+bind each thread to a different CPU core. So if you want to get the best
+performance memaslap, it is better to specify the number of
+thread equal to the number of CPU cores. The number of threads specified by
+the user can also be less or greater than the number of CPU cores. Because
+of the limitation of implementation, the number of concurrencies could be
+the multiple of the number of threads.
+
+1. For 8 CPU cores system
+
+For example:
+
+--threads=2 --concurrency=128
+
+--threads=8 --concurrency=128
+
+--threads=8 --concurrency=256
+
+--threads=12 --concurrency=144
+
+2. For 16 CPU cores system
+
+For example:
+
+--threads=8 --concurrency=128
+
+--threads=16 --concurrency=256
+
+--threads=16 --concurrency=512
+
+--threads=24 --concurrency=288
+
+The memaslap performs very well, when
+used to test the performance of memcached servers.
+Most of the time, the bottleneck is the network or
+the server. If for some reason the user wants to
+limit the performance of memaslap, there
+are two ways to do this:
+
+Decrease the number of threads and concurrencies.
+Use the option “--tps” that memaslap
+provides to limit the throughput. This option allows
+the user to get the expected throughput. For
+example, assume that the maximum throughput is 50
+kops/s for a specific configuration, you can specify
+the throughput equal to or less than the maximum
+throughput using “--tps” option.
+
+
+Window size
+___________
+
+
+Most of the time, the user does not need to specify the window size. The
+default window size is 10k. For Schooner Memcached, the user can specify
+different window sizes to get different cache miss rates based on the test
+case. Memslap testss cache miss rate between 0% and 100%.
+If you use this utility to test the performance of Schooner Memcached, you
+can specify a proper window size to get the expected cache miss rate. The
+formula for calculating window size is as follows:
+
+Assume that the key size is 128 bytes, and the value size is 2048 bytes, and
+concurrency=128.
+
+1. Small cache cache_size=1M, 100% cache miss (all data get from SSD).
+win_size=10k
+
+2. cache_size=4G
+
+(1). cache miss rate 0%
+
+win_size=8k
+
+(2). cache miss rate 5%
+
+win_size=11k
+
+3. cache_size=16G
+
+(1). cache miss rate 0%
+
+win_size=32k
+
+(2). cache miss
+
+rate 5%
+
+win_size=46k
+
+The formula for calculating window size for cache miss rate 0%:
+
+cache_size / concurrency / (key_size + value_size) \* 0.5
+
+The formula for calculating window size for cache miss rate 5%:
+
+cache_size / concurrency / (key_size + value_size) \* 0.7
+
+
+Verification
+____________
+
+
+Memslap testss both data verification and expire-time
+verification. The user can use "--verify=" or "-v" to specify the proportion
+of data verification. In theory, it testss 100% data verification. The
+user can use "--exp_verify=" or "-e" to specify the proportion of
+expire-time verification. In theory, it testss 100% expire-time
+verification. Specify the "--verbose" options to get more detailed error
+information.
+
+For example: --exp_verify=0.01 –verify=0.1 , it means that 1% of the objects
+set with expire-time, 10% of the objects gotten will be verified. If the
+objects are gotten, memaslap will verify the expire-time and
+value.
+
+
+multi-servers and multi-config
+_______________________________
+
+
+Memslap testss multi-servers based on self-governed thread.
+There is a limitation that the number of servers cannot be greater than the
+number of threads. Memslap assigns one thread to handle one
+server at least. The user can use the "--servers=" or "-s" option to specify
+multi-servers.
+
+For example:
+
+--servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 --threads=6 --concurrency=36
+
+The above command means that there are 6 threads, with each thread having 6
+concurrencies and that threads 0 and 3 handle server 0 (10.1.1.1); threads 1
+and 4 handle server 1 (10.1.1.2); and thread 2 and 5 handle server 2
+(10.1.1.3).
+
+All the threads and concurrencies in memaslap are self-governed.
+
+So is memaslap. The user can start up several
+memaslap instances. The user can run memaslap on different client
+machines to communicate with the same memcached server at the same. It is
+recommended that the user start different memaslap on different
+machines using the same configuration.
+
+
+Run with execute number mode or time mode
+_________________________________________
+
+
+The default memaslap runs with time mode. The default run time
+is 10 minutes. If it times out, memaslap will exit. Do not
+specify both execute number mode and time mode at the same time; just
+specify one instead.
+
+For example:
+
+--time=30s (It means the test will run 30 seconds.)
+
+--execute_number=100000 (It means that after running 100000 commands, the test will exit.)
+
+
+Dump statistic information periodically.
+________________________________________
+
+
+The user can use "--stat_freq=" or "-S" to specify the frequency.
+
+For example:
+
+--stat_freq=20s
+
+Memslap will dump the statistics of the commands (get and set) at the frequency of every 20
+seconds.
+
+For more information on the format of dumping statistic information, refer to “Format of Output” section.
+
+
+Multi-get
+_________
+
+
+The user can use "--division=" or "-d" to specify multi-get keys count.
+Memslap by default does single get with TCP. Memslap also testss data
+verification and expire-time verification for multi-get.
+
+Memslap testss multi-get with both TCP and UDP. Because of
+the different implementation of the ASCII protocol and binary protocol,
+there are some differences between the two. For the ASCII protocol,
+memaslap sends one “multi-get” to the server once. For the
+binary protocol, memaslap sends several single get commands
+together as “multi-get” to the server.
+
+
+UDP and TCP
+___________
+
+
+Memslap testss both UDP and TCP. For TCP,
+memaslap does not reconnect the memcached server if socket connections are
+lost. If all the socket connections are lost or memcached server crashes,
+memaslap will exit. If the user specifies the “--reconnect”
+option when socket connections are lost, it will reconnect them.
+
+User can use “--udp” to enable the UDP feature, but UDP comes with some
+limitations:
+
+UDP cannot set data more than 1400 bytes.
+
+UDP is not testsed by the binary protocol because the binary protocol of
+memcached does not tests that.
+
+UDP doesn’t tests reconnection.
+
+
+Facebook test
+_____________
+
+
+Set data with TCP and multi-get with UDP. Specify the following options:
+
+"--facebook --division=50"
+
+If you want to create thousands of TCP connections, specify the
+
+"--conn_sock=" option.
+
+For example: --facebook --division=50 --conn_sock=200
+
+The above command means that memaslap will do facebook test,
+each concurrency has 200 socket TCP connections and one UDP socket.
+
+Memslap sets objects with the TCP socket, and multi-gets 50
+objects once with the UDP socket.
+
+If you specify "--division=50", the key size must be less that 25 bytes
+because the UDP packet size is 1400 bytes.
+
+
+Replication test
+________________
+
+
+For replication test, the user must specify at least two memcached servers.
+The user can use “—rep_write=” option to enable feature.
+
+For example:
+
+--servers=10.1.1.1:11211,10.1.1.2:11212 –rep_write=2
+
+The above command means that there are 2 replication memcached servers,
+memaslap will set objects to both server 0 and server 1, get
+objects which are set to server 0 before from server 1, and also get objects
+which are set to server 1 before from server 0. If server 0 crashes,
+memaslap will only get objects from server 1. If server 0 comes
+back to life again, memaslap will reconnect server 0. If both
+server 0 and server 1 crash, memaslap will exit.
+
+
+Supports thousands of TCP connections
+_____________________________________
+
+
+Start memaslap with "--conn_sock=" or "-n" to enable this
+feature. Make sure that your system can tests opening thousands of files
+and creating thousands of sockets. However, this feature does not tests
+reconnection if sockets disconnect.
+
+For example:
+
+--threads=8 --concurrency=128 --conn_sock=128
+
+The above command means that memaslap starts up 8 threads, each
+thread has 16 concurrencies, each concurrency has 128 TCP socket
+connections, and the total number of TCP socket connections is 128 \* 128 =
+16384.
+
+
+Supports binary protocol
+________________________
+
+
+Start memaslap with "--binary" or "-B" options to enable this
+feature. It testss all the above features except UDP, because the latest
+memcached 1.3.3 does not implement binary UDP protocol.
+
+For example:
+
+--binary
+
+Since memcached 1.3.3 doesn't implement binary UDP protocol,
+memaslap does not tests UDP. In addition, memcached 1.3.3 does not tests
+multi-get. If you specify "--division=50" option, it just sends 50 get
+commands together as “mulit-get” to the server.
+
+
+
+------------------
+Configuration file
+------------------
+
+
+This section describes the format of the configuration file. By default
+when no configuration file is specified memaslap reads the default
+one located at ~/.memaslap.cnf.
+
+Below is a sample configuration file:
+
+
+.. code-block:: perl
+
+ ---------------------------------------------------------------------------
+ #comments should start with '#'
+ #key
+ #start_len end_len proportion
+ #
+ #key length range from start_len to end_len
+ #start_len must be equal to or greater than 16
+ #end_len must be equal to or less than 250
+ #start_len must be equal to or greater than end_len
+ #memaslap will generate keys according to the key range
+ #proportion: indicates keys generated from one range accounts for the total
+ generated keys
+ #
+ #example1: key range 16~100 accounts for 80%
+ # key range 101~200 accounts for 10%
+ # key range 201~250 accounts for 10%
+ # total should be 1 (0.8+0.1+0.1 = 1)
+ #
+ # 16 100 0.8
+ # 101 200 0.1
+ # 201 249 0.1
+ #
+ #example2: all keys length are 128 bytes
+ #
+ # 128 128 1
+ key
+ 128 128 1
+ #value
+ #start_len end_len proportion
+ #
+ #value length range from start_len to end_len
+ #start_len must be equal to or greater than 1
+ #end_len must be equal to or less than 1M
+ #start_len must be equal to or greater than end_len
+ #memaslap will generate values according to the value range
+ #proportion: indicates values generated from one range accounts for the
+ total generated values
+ #
+ #example1: value range 1~1000 accounts for 80%
+ # value range 1001~10000 accounts for 10%
+ # value range 10001~100000 accounts for 10%
+ # total should be 1 (0.8+0.1+0.1 = 1)
+ #
+ # 1 1000 0.8
+ # 1001 10000 0.1
+ # 10001 100000 0.1
+ #
+ #example2: all value length are 128 bytes
+ #
+ # 128 128 1
+ value
+ 2048 2048 1
+ #cmd
+ #cmd_type cmd_proportion
+ #
+ #currently memaslap only testss get and set command.
+ #
+ #cmd_type
+ #set 0
+ #get 1
+ #
+ #example: set command accounts for 50%
+ # get command accounts for 50%
+ # total should be 1 (0.5+0.5 = 1)
+ #
+ # cmd
+ # 0 0.5
+ # 1 0.5
+ cmd
+ 0 0.1
+ 1.0 0.9
+
+
+
+----------------
+Format of output
+----------------
+
+
+At the beginning, memaslap displays some configuration information as follows:
+
+
+servers : 127.0.0.1:11211
+
+
+
+threads count: 1
+
+
+
+concurrency: 16
+
+
+
+run time: 20s
+
+
+
+windows size: 10k
+
+
+
+set proportion: set_prop=0.10
+
+
+
+get proportion: get_prop=0.90
+
+
+
+Where
+_____
+
+
+
+servers : "servers"
+
+ The servers used by memaslap.
+
+
+
+threads count
+
+ The number of threads memaslap runs with.
+
+
+
+concurrency
+
+ The number of concurrencies memaslap runs with.
+
+
+
+run time
+
+ How long to run memaslap.
+
+
+
+windows size
+
+ The task window size of each concurrency.
+
+
+
+set proportion
+
+ The proportion of set command.
+
+
+
+get proportion
+
+ The proportion of get command.
+
+
+
+The output of dynamic statistics is something like this:
+
+
+.. code-block:: perl
+
+ ---------------------------------------------------------------------------------------------------------------------------------
+ Get Statistics
+ Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
+ Avg(us) Std_dev Geo_dist
+ Period 5 345826 69165 65.3 0 27 2198 203
+ 95.43 177.29
+ Global 20 1257935 62896 71.8 0 26 3791 224
+ 117.79 192.60
+
+
+ Set Statistics
+ Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
+ Avg(us) Std_dev Geo_dist
+ Period 5 38425 7685 7.3 0 42 628 240
+ 88.05 220.21
+ Global 20 139780 6989 8.0 0 37 3790 253
+ 117.93 224.83
+
+
+ Total Statistics
+ Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
+ Avg(us) Std_dev Geo_dist
+ Period 5 384252 76850 72.5 0 27 2198 207
+ 94.72 181.18
+ Global 20 1397720 69886 79.7 0 26 3791 227
+ 117.93 195.60
+ ---------------------------------------------------------------------------------------------------------------------------------
+
+
+
+Where
+_____
+
+
+
+Get Statistics
+
+ Statistics information of get command
+
+
+
+Set Statistics
+
+ Statistics information of set command
+
+
+
+Total Statistics
+
+ Statistics information of both get and set command
+
+
+
+Period
+
+ Result within a period
+
+
+
+Global
+
+ Accumulated results
+
+
+
+Ops
+
+ Total operations
+
+
+
+TPS
+
+ Throughput, operations/second
+
+
+
+Net
+
+ The rate of network
+
+
+
+Get_miss
+
+ How many objects can’t be gotten
+
+
+
+Min
+
+ The minimum response time
+
+
+
+Max
+
+ The maximum response time
+
+
+
+Avg:
+
+ The average response time
+
+
+
+Std_dev
+
+ Standard deviation of response time
+
+
+
+Geo_dist
+
+ Geometric distribution based on natural exponential function
+
+
+
+At the end, memaslap will output something like this:
+
+
+.. code-block:: perl
+
+ ---------------------------------------------------------------------------------------------------------------------------------
+ Get Statistics (1257956 events)
+ Min: 26
+ Max: 3791
+ Avg: 224
+ Geo: 192.60
+ Std: 116.23
+ Log2 Dist:
+ 4: 0 10 84490 215345
+ 8: 484890 459823 12543 824
+ 12: 31
+
+ Set Statistics (139782 events)
+ Min: 37
+ Max: 3790
+ Avg: 253
+ Geo: 224.84
+ Std: 116.83
+ Log2 Dist:
+ 4: 0 0 4200 16988
+ 8: 50784 65574 2064 167
+ 12: 5
+
+ Total Statistics (1397738 events)
+ Min: 26
+ Max: 3791
+ Avg: 227
+ Geo: 195.60
+ Std: 116.60
+ Log2 Dist:
+ 4: 0 10 88690 232333
+ 8: 535674 525397 14607 991
+ 12: 36
+
+ cmd_get: 1257969
+ cmd_set: 139785
+ get_misses: 0
+ verify_misses: 0
+ verify_failed: 0
+ expired_get: 0
+ unexpired_unget: 0
+ written_bytes: 242516030
+ read_bytes: 1003702556
+ object_bytes: 152086080
+ packet_disorder: 0
+ packet_drop: 0
+ udp_timeout: 0
+
+ Run time: 20.0s Ops: 1397754 TPS: 69817 Net_rate: 59.4M/s
+ ---------------------------------------------------------------------------------------------------------------------------------
+
+
+
+Where
+_____
+
+
+
+Get Statistics
+
+ Get statistics of response time
+
+
+
+Set Statistics
+
+ Set statistics of response time
+
+
+
+Total Statistics
+
+ Both get and set statistics of response time
+
+
+
+Min
+
+ The accumulated and minimum response time
+
+
+
+Max
+
+ The accumulated and maximum response time
+
+
+
+Avg
+
+ The accumulated and average response time
+
+
+
+Std
+
+ Standard deviation of response time
+
+
+
+Log2 Dist
+
+ Geometric distribution based on logarithm 2
+
+
+
+cmd_get
+
+ Total get commands done
+
+
+
+cmd_set
+
+ Total set commands done
+
+
+
+get_misses
+
+ How many objects can’t be gotten from server
+
+
+
+verify_misses
+
+ How many objects need to verify but can’t get them
+
+
+
+verify_failed
+
+ How many objects with insistent value
+
+
+
+expired_get
+
+ How many objects are expired but we get them
+
+
+
+unexpired_unget
+
+ How many objects are unexpired but we can’t get them
+
+
+
+written_bytes
+
+ Total written bytes
+
+
+
+read_bytes
+
+ Total read bytes
+
+
+
+object_bytes
+
+ Total object bytes
+
+
+
+packet_disorder
+
+ How many UDP packages are disorder
+
+
+
+packet_drop
+
+ How many UDP packages are lost
+
+
+
+udp_timeout
+
+ How many times UDP time out happen
+
+
+
+Run time
+
+ Total run time
+
+
+
+Ops
+
+ Total operations
+
+
+
+TPS
+
+ Throughput, operations/second
+
+
+
+Net_rate
+
+ The average rate of network
+
+
+
+
+
+-------
+OPTIONS
+-------
+
+
+-s, --servers=
+ List one or more servers to connect. Servers count must be less than
+ threads count. e.g.: --servers=localhost:1234,localhost:11211
+
+-T, --threads=
+ Number of threads to startup, better equal to CPU numbers. Default 8.
+
+-c, --concurrency=
+ Number of concurrency to simulate with load. Default 128.
+
+-n, --conn_sock=
+ Number of TCP socks per concurrency. Default 1.
+
+-x, --execute_number=
+ Number of operations(get and set) to execute for the
+ given test. Default 1000000.
+
+-t, --time=
+ How long the test to run, suffix: s-seconds, m-minutes, h-hours,
+ d-days e.g.: --time=2h.
+
+-F, --cfg_cmd=
+ Load the configure file to get command,key and value distribution list.
+
+-w, --win_size=
+ Task window size of each concurrency, suffix: K, M e.g.: --win_size=10k.
+ Default 10k.
+
+-X, --fixed_size=
+ Fixed length of value.
+
+-v, --verify=
+ The proportion of date verification, e.g.: --verify=0.01
+
+-d, --division=
+ Number of keys to multi-get once. Default 1, means single get.
+
+-S, --stat_freq=
+ Frequency of dumping statistic information. suffix: s-seconds,
+ m-minutes, e.g.: --resp_freq=10s.
+
+-e, --exp_verify=
+ The proportion of objects with expire time, e.g.: --exp_verify=0.01.
+ Default no object with expire time
+
+-o, --overwrite=
+ The proportion of objects need overwrite, e.g.: --overwrite=0.01.
+ Default never overwrite object.
+
+-R, --reconnect
+ Reconnect tests, when connection is closed it will be reconnected.
+
+-U, --udp
+ UDP tests, default memaslap uses TCP, TCP port and UDP port of
+ server must be same.
+
+-a, --facebook
+ Whether it enables facebook test feature, set with TCP and multi-get with UDP.
+
+-B, --binary
+ Whether it enables binary protocol. Default with ASCII protocol.
+
+-P, --tps=
+ Expected throughput, suffix: K, e.g.: --tps=10k.
+
+-p, --rep_write=
+ The first nth servers can write data, e.g.: --rep_write=2.
+
+-b, --verbose
+ Whether it outputs detailed information when verification fails.
+
+-h, --help
+ Display this message and then exit.
+
+-V, --version
+ Display the version of the application and then exit.
+
+
+--------
+EXAMPLES
+--------
+
+
+memaslap -s 127.0.0.1:11211 -S 5s
+
+memaslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b
+
+memaslap -s 127.0.0.1:11211 -F config -t 2m -w 40k -S 20s -o 0.2
+
+memaslap -s 127.0.0.1:11211 -F config -t 2m -T 4 -c 128 -d 20 -P 40k
+
+memaslap -s 127.0.0.1:11211 -F config -t 2m -d 50 -a -n 40
+
+memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m
+
+memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2
+
+
+----
+HOME
+----
+
+
+To find out more information please check:
+`http://launchpad.org/libmemcached <http://launchpad.org/libmemcached>`_
+
+
+-------
+AUTHORS
+-------
+
+
+Mingqiang Zhuang <mingqiangzhuang@hengtiansoft.com> (Schooner Technolgy)
+Brian Aker, <brian@tangent.org>
+
+
+--------
+SEE ALSO
+--------
+
+:manpage:`memcached(1)` :manpage:`libmemcached(3)`
-.. highlight:: perl
-
-
-memcached_analyze
-*****************
+=================
+Anaylzing servers
+=================
Analyze server information
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) has the ability to query a memcached server (or collection
you do not have to write an application to use this method.
-******
+------
RETURN
-******
+------
A pointer to the allocated \ ``memcached_analysis_st``\ structure on success and
memory allocated for it.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Toru Maesaka, <dev@torum.net>
-
-
-********
+--------
SEE ALSO
-********
+--------
-memcached(1) libmemcached(3) memcached_strerror(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_increment, memcached_decrement, memcached_increment_with_initial, memcached_decrement_with_initial
-************************************************************************************************************
+=========================================================
+Incrementing and Decrementing values stored in the server
+=========================================================
Manipulate counters
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached(1) servers have the ability to increment and decrement keys
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3) memcached_strerror(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_behavior_get, memcached_behavior_set
-**********************************************
+================================
+Modifying how the driver behaves
+================================
Manipulate behavior
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) behavior can be modified by use memcached_behavior_set().
MEMCACHED_BEHAVIOR_USE_UDP
Causes libmemcached(3) to use the UDP transport when communicating
- with a memcached server. Not all I/O operations are supported
+ with a memcached server. Not all I/O operations are testsed
when this behavior is enababled. The following operations will return
\ ``MEMCACHED_NOT_SUPPORTED``\ when executed with the MEMCACHED_BEHAVIOR_USE_UDP
enabled: memcached_version(), memcached_stat(), memcached_get(),
memcached_get_by_key(), memcached_mget(), memcached_mget_by_key(),
memcached_fetch(), memcached_fetch_result(), memcached_value_fetch().
- All other operations are supported but are executed in a 'fire-and-forget'
+ All other operations are testsed but are executed in a 'fire-and-forget'
mode, in which once the client has executed the operation, no attempt
will be made to ensure the operation has been received and acted on by the
server.
Makes the default hashing algorithm for keys use MD5. The value can be set
to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_JENKINS, MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR.
Each hash has it's advantages and it's weaknesses. If you don't know or don't care, just go with the default.
- Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable support for this hashing algorithm, configure and build libmemcached with the --enable-hash_hsieh.
+ Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable tests for this hashing algorithm, configure and build libmemcached with the --enable-hash_hsieh.
MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED
- Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support.
+ Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted tests.
and the hash to MEMCACHED_HASH_MD5.
Enable TCP_CORK behavior. This is only available as an option Linux.
MEMCACHED_NO_SERVERS is returned if no servers are available to test with.
MEMCACHED_NOT_SUPPORTED is returned if we were not able to determine
- if support was available. All other responses then MEMCACHED_SUCCESS
+ if tests was available. All other responses then MEMCACHED_SUCCESS
report an error of some sort. This behavior also enables
MEMCACHED_BEHAVIOR_TCP_NODELAY when set.
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3) memcached_strerror(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_callback_get, memcached_callback_set
-**********************************************
+=================
+Setting callbacks
+=================
Get and set a callback
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
-
-
+--------
-.. code-block:: perl
-
- #include <libmemcached/memcached.h>
+#include <libmemcached/memcached.h>
- memcached_return_t
- memcached_callback_set (memcached_st *ptr,
- memcached_callback_t flag,
- void *data);
+.. c:function:: memcached_return_t memcached_callback_set (memcached_st *ptr, memcached_callback_t flag, void *data);
- void *
- memcached_callback_get (memcached_st *ptr,
- memcached_callback_t flag,
- memcached_return_t *error);
+.. c:function:: void * memcached_callback_get (memcached_st *ptr, memcached_callback_t flag, memcached_return_t *error);
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) can have callbacks set key execution points. These either
of the callbacks
-MEMCACHED_CALLBACK_CLEANUP_FUNCTION
+.. c:var:: MEMCACHED_CALLBACK_CLEANUP_FUNCTION
When memcached_delete() is called this function will be excuted. At the
point of its execution all connections have been closed.
-MEMCACHED_CALLBACK_CLONE_FUNCTION
+.. c:var:: MEMCACHED_CALLBACK_CLONE_FUNCTION
When memcached_delete() is called this function will be excuted. At the
point of its execution all connections have been closed.
-MEMCACHED_CALLBACK_PREFIX_KEY
+.. c:var:: MEMCACHED_CALLBACK_PREFIX_KEY
You can set a value which will be used to create a domain for your keys.
The value specified here will be prefixed to each of your keys. The value can not
If you set a value with the value being NULL then the prefix key is disabled.
-MEMCACHED_CALLBACK_USER_DATA
+.. c:var:: MEMCACHED_CALLBACK_USER_DATA
This allows you to store a pointer to a specifc piece of data. This can be
retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st
-MEMCACHED_CALLBACK_MALLOC_FUNCTION
+.. c:var:: MEMCACHED_CALLBACK_MALLOC_FUNCTION
DEPRECATED: use memcached_set_memory_allocators instead.
-MEMCACHED_CALLBACK_REALLOC_FUNCTION
+.. c:var:: MEMCACHED_CALLBACK_REALLOC_FUNCTION
DEPRECATED: use memcached_set_memory_allocators instead.
-MEMCACHED_CALLBACK_FREE_FUNCTION
+.. c:var:: MEMCACHED_CALLBACK_FREE_FUNCTION
DEPRECATED: use memcached_set_memory_allocators instead.
-MEMCACHED_CALLBACK_GET_FAILURE
+.. c:var:: MEMCACHED_CALLBACK_GET_FAILURE
This function implements the read through cache behavior. On failure of retrieval this callback will be called.
You are responsible for populating the result object provided. This result object will then be stored in the server and
-MEMCACHED_CALLBACK_DELETE_TRIGGER
+.. c:var:: MEMCACHED_CALLBACK_DELETE_TRIGGER
- This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned
- in order to make use of it.
+This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned in order to make use of it.
- The prototype for this is:
- typedef memcached_return_t (\*memcached_trigger_delete_key)(memcached_st \*ptr, char \*key, size_t key_length);
+The prototype for this is: typedef memcached_return_t (\*memcached_trigger_delete_key)(memcached_st \*ptr, char \*key, size_t key_length);
-******
+------
RETURN
-******
+------
memcached_callback_get() return the function or structure that was provided.
otherwise MEMCACHED_FAILURE on error.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3) memcached_strerror(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_create, memcached_free, memcached_clone, memcached_servers_reset
-**************************************************************************
+======================================
+Creating and destroying a memcached_st
+======================================
Create a memcached_st structure
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
-
+--------
-
-.. code-block:: perl
-
- #include <libmemcached/memcached.h>
+#include <libmemcached/memcached.h>
- memcached_st *memcached_create (memcached_st *ptr);
+.. c:function:: memcached_st *memcached_create (memcached_st *ptr);
- void memcached_free (memcached_st *ptr);
+.. c:function:: void memcached_free (memcached_st *ptr);
- memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
+.. c:function:: memcached_st *memcached_clone (memcached_st *destination, memcached_st *source);
- void memcached_servers_reset(memcached_st);
+.. c:function:: void memcached_servers_reset(memcached_st);
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_create() is used to create a \ ``memcached_st``\ structure that will then
heap allocated structures.
-******
+------
RETURN
-******
+------
memcached_create() returns a pointer to the memcached_st that was created
(or initialized). On an allocation failure, it returns NULL.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3) memcached_strerror(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_delete
-****************
+===========================
+Deleting data from a server
+===========================
Delete a key
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
#include <libmemcached/memcached.h>
- memcached_return_t
- memcached_delete (memcached_st *ptr,
- const char *key, size_t key_length,
- time_t expiration);
+ memcached_return_t memcached_delete (memcached_st *ptr, const char *key, size_t key_length, time_t expiration);
- memcached_return_t
- memcached_delete_by_key (memcached_st *ptr,
- const char *master_key, size_t master_key_length,
- const char *key, size_t key_length,
- time_t expiration);
+ memcached_return_t memcached_delete_by_key (memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, size_t key_length, time_t expiration);
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_delete() is used to delete a particular key.
"replace" command with this key will also fail (the "set" command will
succeed, however). After the time passes, the item is finally deleted from server memory.
-Please note the the Danga memcached server removed support for expiration in
+Please note the the Danga memcached server removed tests for expiration in
the 1.4 version.
-******
+------
RETURN
-******
+------
A value of type \ ``memcached_return_t``\ is returned
means that the message was queued for delivery.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached(3) memcached_strerror(3)
+--------
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_dump
-**************
+==========================
+Dumping data from a server
+==========================
Get a list of keys found on memcached servers
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_dump() is used to get a list of keys found memcached(1) servers.
you have fetched all keys from the server. The function takes an array
of callbacks that it will use to execute on keys as they are found.
-Currently the binar protocol is not supported.
+Currently the binar protocol is not testsed.
-******
+------
RETURN
-******
+------
A value of type \ ``memcached_return_t``\ is returned
Use memcached_strerror() to translate this value to a printable string.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3) memcached_strerror(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_flush
-***************
+=====================================
+Wiping clean the contents of a server
+=====================================
Wipe contents of memcached servers
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_flush() is used to wipe clean the contents of memcached(1) servers.
added.
-******
+------
RETURN
-******
+------
A value of type \ ``memcached_return_t``\ is returned
Use memcached_strerror() to translate this value to a printable string.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached(3) memcached_strerror(3)
+--------
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_flush_buffers
-***********************
+=======================
+Flushing client buffers
+=======================
Flush buffers and send buffered commands
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
-
-
+--------
-.. code-block:: perl
-
- #include <libmemcached/memcached.h>
+#include <libmemcached/memcached.h>
- memcached_return_t
- memcached_flush_buffers (memcached_st *ptr);
+.. c:function:: memcached_return_t memcached_flush_buffers (memcached_st *ptr);
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_flush_buffers() is used in conjunction with
all buffers by sending the buffered commands to the server for processing.
-******
+------
RETURN
-******
+------
A value of type \ ``memcached_return_t``\ is returned
Use memcached_strerror() to translate this value to a printable string.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
+
+Brian Aker, <brian@tangent.org>
Trond Norbye, <trond.norbye@gmail.com>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3) memcached_strerror(3) memcached_behavior(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_generate_hash_value
-*****************************
+===============================
+Generating hash values directly
+===============================
Hash a key value
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_generate_hash_value() allows you to hash a key using one of
of the memcached_st structure.
As of version 0.36 all hash methods have been placed into the library
-libhashkit(3) which is linked with libmemcached(3).
+libhashkit(3) which is linked with libmemcached(3). For more information please see its documentation.
-******
+------
RETURN
-******
+------
A 32-bit integer which is the result of hashing the given key.
returned.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3) memcached_behavior_set(3) libhashkit(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_get, memcached_mget, memcached_fetch, memcached_mget_execute, memcached_mget_execute_by_key
-*****************************************************************************************************
+===============================
+Retrieving data from the server
+===============================
Get a value
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_get() is used to fetch an individual value from the server. You
a master key that is used for determining which server an object was stored
if key partitioning was used for storage.
-All of the above functions are not supported when the \ ``MEMCACHED_BEHAVIOR_USE_UDP``\
+All of the above functions are not testsed when the \ ``MEMCACHED_BEHAVIOR_USE_UDP``\
has been set. Executing any of these functions with this behavior on will result in
\ ``MEMCACHED_NOT_SUPPORTED``\ being returned or, for those functions which do not return
a \ ``memcached_return_t``\ , the error function parameter will be set to
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached(3) memcached_strerror(3)
+--------
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_set_memory_allocators, memcached_get_memory_allocators, memcached_set_memory_allocators_context
-*********************************************************************************************************
+========================================
+Use custom allocators for embedded usage
+========================================
Manage memory allocator functions
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
#include <libmemcached/memcached.h>
- memcached_return_t
- memcached_set_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn mem_malloc,
- memcached_free_fn mem_free,
- memcached_realloc_fn mem_realloc,
- memcached_calloc_fn mem_calloc,
- void *context);
+ memcached_return_t memcached_set_memory_allocators (memcached_st *ptr, memcached_malloc_fn mem_malloc, memcached_free_fn mem_free, memcached_realloc_fn mem_realloc, memcached_calloc_fn mem_calloc, void *context);
- void
- memcached_get_memory_allocators (memcached_st *ptr,
- memcached_malloc_fn *mem_malloc,
- memcached_free_fn *mem_free,
- memcached_realloc_fn *mem_realloc,
- memcached_calloc_fn *mem_calloc);
+ void memcached_get_memory_allocators (memcached_st *ptr, memcached_malloc_fn *mem_malloc, memcached_free_fn *mem_free, memcached_realloc_fn *mem_realloc, memcached_calloc_fn *mem_calloc);
- void *
- memcached_get_memory_allocators_context(const memcached_st *ptr);
+ void * memcached_get_memory_allocators_context(const memcached_st *ptr);
- void *
- (*memcached_malloc_fn) (memcached_st *ptr, const size_t size,
- void *context);
+ void * (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, void *context);
- void *
- (*memcached_realloc_fn) (memcached_st *ptr, void *mem,
- const size_t size,
- void *context);
+ void * (*memcached_realloc_fn) (memcached_st *ptr, void *mem, const size_t size, void *context);
- void
- (*memcached_free_fn) (memcached_st *ptr, void *mem,
- void *context);
+ void (*memcached_free_fn) (memcached_st *ptr, void *mem, void *context);
- void *
- (*memcached_calloc_fn) (memcached_st *ptr,
- size_t nelem,
- const size_t elsize,
- void *context);
+ void * (*memcached_calloc_fn) (memcached_st *ptr, size_t nelem, const size_t elsize, void *context);
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) allows you to specify your own memory allocators optimized
-for your application.
+for your application. This enables libmemcached to be used inside of applications that have their own malloc implementation.
memcached_set_memory_allocators() is used to set the memory allocators used
by the memcached instance specified by ptr. Please note that you cannot
it in order to make use of any operation which would modify it.
-*****
+-----
NOTES
-*****
+-----
In version 0.38 all functions were modified to have a context void pointer
own space for memory.
-******
+------
RETURN
-******
+------
memcached_set_memory_allocators() return MEMCACHED_SUCCESS upon success,
and MEMCACHED_FAILURE if you don't pass a complete set of function pointers.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Trond Norbye, <trond.norbye@gmail.com>
-Brian Aker, <brian@tangent.orf<gt>
-
-
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3)
+--------
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
+============================
+Working with memcached pools
+============================
-
-memcached_pool_create, memcached_pool_destroy, memcached_pool_push, memcached_pool_pop
-**************************************************************************************
-
-
-Manage pools
-
-
-*******
-LIBRARY
-*******
-
-
-C Client Library for memcached (libmemcachedutil, -lmemcachedutil)
-
-
-********
+--------
SYNOPSIS
-********
-
+--------
+#include <libmemcached/memcached_pool.h>
-.. code-block:: perl
-
- #include <libmemcached/memcached_pool.h>
-
- memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
+.. c:function:: memcached_pool_st * memcached_pool_create(memcached_st* mmc, int initial, int max);
- memcached_st *
- memcached_pool_destroy(memcached_pool_st* pool);
+.. c:function:: memcached_st * memcached_pool_destroy(memcached_pool_st* pool);
- memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+.. c:function:: memcached_st * memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
- memcached_return_t
- memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
+.. c:function:: memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc);
- memcached_st *memcached_create (memcached_st *ptr);
+.. c:function:: memcached_st *memcached_create (memcached_st *ptr);
- memcached_return_t
- memcached_pool_behavior_set(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t data)
+.. c:function:: memcached_return_t memcached_pool_behavior_set(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t data)
- memcached_return_t
- memcached_pool_behavior_get(memcached_pool_st *pool,
- memcached_behavior_t flag,
- uint64_t *value)
+.. c:function:: memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
+Compile and link with -lmemcachedutil -lmemcached
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_pool_create() is used to create a connection pool of objects you
used to get/set behavior flags on all connections in the pool.
-******
+------
RETURN
-******
+------
memcached_pool_create() returns a pointer to the newly created
returns MEMCACHED_SUCCESS upon success.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
+Brian Aker, <brian@tangent.org>
+
Trond Norbye, <trond.norbye@gmail.com>
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3)
+--------
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_quit
-**************
+====================================
+Disconnecting a client from a server
+====================================
Disconnect from all servers
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_quit() will disconnect you from all currently connected servers.
reset connections during the middle of a memcached_fetch().
-******
+------
RETURN
-******
+------
A value of type \ ``memcached_return``\ is returned
Use memcached_strerror() to translate this value to a printable string.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached(3) memcached_strerror(3)
+--------
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_result_create, memcached_result_free, memcached_result_key_value, memcached_result_key_length, memcached_result_value, memcached_result_length, memcached_result_flags, memcached_result_cas
-******************************************************************************************************************************************************************************************************
+========================
+Working with result sets
+========================
Work with memcached_result_st
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) can optionally return a memcached_result_st which acts as a
memcached_result_cas() returns the cas associated with the
current result object. This value will only be available if the server
-supports it.
+testss it.
memcached_result_set_value() takes a byte array and a size and sets
the result to this value. This function is used for trigger responses.
heap allocated structures.
-******
+------
RETURN
-******
+------
Varies, see particular functions. All structures must have
do this will result in leaked memory.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached(3) memcached_strerror(3)
+--------
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_set_sasl_callbacks, memcached_get_sasl_callbacks, memcached_sasl_set_auth_data, memcached_destroy_sasl_auth_data
-**************************************************************************************************************************
-
-
+============
SASL support
+============
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) allows you to plug in your own callbacks function used by
calling sasl_done() when you are done using SASL from libmemcached.
-******
+------
RETURN
-******
+------
memcached_get_sasl_callbacks() returns the callbacks currently used
memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success.
-****
+----
HOME
-****
+----
To find out more information please check:
`http://libmemcached.org/ <http://libmemcached.org/>`_
-******
+------
AUTHOR
-******
+------
+
+Brian Aker, <brian@tangent.org>
Trond Norbye, <trond.norbye@gmail.com>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_server_list_free, memcached_server_list_append, memcached_server_list_count, memcached_servers_parse
-**************************************************************************************************************
+=========================
+Managing lists of servers
+=========================
Manage server list
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) operates on a list of hosts which are stored in
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3) memcached_strerror(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_server_count, memcached_server_list, memcached_server_add, memcached_server_push, memcached_server_get_last_disconnect, memcached_server_cursor
-*********************************************************************************************************************************************************
+========================================================
+Manipulate the server information stored in memcached_st
+========================================================
Manage server list
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
uint32_t memcached_server_count (memcached_st *ptr);
- memcached_return_t
- memcached_server_add (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
-
- memcached_return_t
- memcached_server_add_udp (memcached_st *ptr,
- const char *hostname,
- in_port_t port);
+ memcached_return_t memcached_server_add (memcached_st *ptr, const char *hostname, in_port_t port);
- memcached_return_t
- memcached_server_add_unix_socket (memcached_st *ptr,
- const char *socket);
+ memcached_return_t memcached_server_add_udp (memcached_st *ptr, const char *hostname, in_port_t port);
- memcached_return_t
- memcached_server_push (memcached_st *ptr,
- const memcached_server_st *list);
+ memcached_return_t memcached_server_add_unix_socket (memcached_st *ptr, const char *socket);
- memcached_server_instance_st
- memcached_server_by_key (const memcached_st *ptr,
- const char *key,
- size_t key_length,
- memcached_return_t *error);
+ memcached_return_t memcached_server_push (memcached_st *ptr, const memcached_server_st *list);
+
+ memcached_server_instance_st memcached_server_by_key (const memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error);
- memcached_server_instance_st
- memcached_server_get_last_disconnect (const memcached_st *ptr)
+ memcached_server_instance_st memcached_server_get_last_disconnect (const memcached_st *ptr)
- memcached_return_t
- memcached_server_cursor(const memcached_st *ptr,
- const memcached_server_fn *callback,
- void *context,
- uint32_t number_of_callbacks);
+ memcached_return_t memcached_server_cursor(const memcached_st *ptr, const memcached_server_fn *callback, void *context, uint32_t number_of_callbacks);
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) performs operations on a list of hosts. The order of these
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3) memcached_strerror(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_set, memcached_add, memcached_replace
-***********************************************
+==========================
+Storing and Replacing Data
+==========================
Store value on server
-*******
+-------
LIBRARY
-*******
+-------
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_set(), memcached_add(), and memcached_replace() are all used to
store information on the server. All methods take a key, and its length to
store the object. Keys are currently limited to 250 characters by the
memcached(1) server. You must also supply a value and a length. Optionally you
-may support an expiration time for the object and a 16 byte value (it is
+may tests an expiration time for the object and a 16 byte value (it is
meant to be used as a bitmap).
memcached_set() will write an object to the server. If an object already
memcached_cas() overwrites data in the server as long as the "cas" value is
still the same in the server. You can get the cas value of a result by
calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on support
+that this note was written cas is still buggy in memached. Turning on tests
for it in libmemcached(3) is optional. Please see memcached_set() for
information on how to do this.
If you are looking for performance, memcached_set() with non-blocking IO is
the fastest way to store data on the server.
-All of the above functions are supported with the \ ``MEMCACHED_BEHAVIOR_USE_UDP``\
+All of the above functions are testsed with the \ ``MEMCACHED_BEHAVIOR_USE_UDP``\
behavior enabled. But when using these operations with this behavior on, there
are limits to the size of the payload being sent to the server. The reason for
these limits is that the Memcahed Server does not allow multi-datagram requests
will be returned.
-******
+------
RETURN
-******
+------
All methods return a value of type \ ``memcached_return_t``\ .
legitmate error in the case of a collision.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemached(3) memcached_strerror(3)
-.. highlight:: perl
-
-
-memcached_stat, memcached_stat_servername, memcached_stat_get_value, memcached_stat_get_keys
-********************************************************************************************
+==================================================
+Working with statistical information from a server
+==================================================
Get memcached statistics
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) has the ability to query a memcached server (or collection
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3) memcached_strerror(3)
-.. highlight:: perl
-
-
-memcached_strerror
-******************
-
-
-Get error string
+================================================
+Coverting Errors, memcached_return_t, to strings
+================================================
*******
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_strerror() takes a \ ``memcached_return_t``\ value and returns a string
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
-.. highlight:: perl
-
-
-memcached_set_user_data, memcached_get_user_data
-************************************************
+==============================================
+Storing custom user information in the client.
+==============================================
Manage user specific data
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) allows you to store a pointer to a user specific data inside
Trond Norbye, <trond.norbye@gmail.com>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
-.. highlight:: perl
-
-
-memcached_verbosity
-*******************
+=================================
+Setting the verbosity of a server
+=================================
Modifiy verbosity of servers
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_verbosity() modifies the "verbosity" of the
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3) memcached_strerror(3)
-.. highlight:: perl
-
-
-memcached_lib_version, memcached_version
-****************************************
+=======================================================
+Getting version information about the client and server
+=======================================================
Get library version
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_lib_version() is used to return a simple version string representing
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3) memcached_strerror(3)
-.. highlight:: perl
+=======================================================================
+memcapable - Checking a Memcached server capibilities and compatibility
+=======================================================================
-memcapable
-**********
+Check the server for compatibility and capabilities
-Check memcached server capabilities
-
-
-********
+--------
SYNOPSIS
-********
-
-
-
-.. code-block:: perl
-
- memcat [-h hostname] [-p port] [-c] [-v] [-t n]
-
-
-
-***********
-DESCRIPTION
-***********
-
-
-\ **memcapable**\ connects to the specified memcached server and tries to
-determine its capabilities by running the various commands and verifying
-the response.
-
-
-*******
-OPTIONS
-*******
+--------
+.. program:: memcat
-The following options are supported:
-
-
--h hostname
+.. option:: -h hostname
Specify the hostname to connect to. The default is \ *localhost*\
-
-
--p port
+.. option:: -p port
Specify the port number to connect to. The default is \ *11211*\
--c
+.. option:: -c
Generate a coredump when it detects an error from the server.
--v
+.. option:: -v
- Print out the comparison when it detects an error from the server.
+ Print out the comparison when it detects an error from the server.
--t n
+.. option:: -t n
Set the timeout from an IO operation to/from the server to \ *n*\ seconds.
+-----------
+DESCRIPTION
+-----------
+\ **memcapable**\ connects to the specified memcached server and tries to
+determine its capabilities by running the various commands and verifying
+the response.
-***********
+-----------
LIMITATIONS
-***********
+-----------
The current version of memcapable will only verify the binary protocol.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Trond Norbye, <trond.norbye@gmail.com>
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)`
-.. highlight:: perl
-
-
-memcat
-******
+=================================
+memcat - "cat" data from a server
+=================================
Copy a set of keys to stdout
-********
+--------
SYNOPSIS
-********
-
+--------
-.. code-block:: perl
- memcat [options] key key ...
+.. program:: memcat
+.. option:: --help
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memcat**\ outputs to stdout the value a single or multiple set of keys
For a full list of operations run the tool with the \ **--help**\ option.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
Mark Atwood <mark@fallenpegasus.com>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
-.. highlight:: perl
-
-
-memcp
-*****
+=============================
+memcp - Copy data to a server
+=============================
Copies files to a collection of memcached servers
-********
+--------
SYNOPSIS
-********
-
-
-
-.. code-block:: perl
+--------
- memcp [options] file file <servers>
+.. program:: memcp
+.. option:: --help
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memcp**\ copies one or more files into memcached(1) servers.
For a full list of operations run the tool with the \ **--help**\ option.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
Mark Atwood, <mark@fallenpegasus.com>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
-.. highlight:: perl
-
-
-memdump
-*******
+=============================
+memdump - Dumping your server
+=============================
Dump a list of keys from a server.
-********
+--------
SYNOPSIS
-********
-
-
-
-.. code-block:: perl
-
- memdump [options]
+--------
+.. program:: memdump
+.. option:: --help
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memdump**\ currently dumps a list of "keys" from all servers that
For a full list of operations run the tool with the \ **--help**\ option.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached(3)
+--------
+:manpage:`memcached(1)` :manpage:`libmemcached(3)`
-.. highlight:: perl
-
-
-memerror
-********
+==============================================
+memerror - translate an error code to a string
+==============================================
Translate a memcached error code to a string
-********
+--------
SYNOPSIS
-********
-
-
-
-.. code-block:: perl
-
- memerror [options] error_code
+--------
+.. program:: memerror
+.. option:: --help
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memerror**\ translate an error code from libmemcached(3) to a human
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
-.. highlight:: perl
-
-
-memflush
-********
+=======================================
+memflush - flush all data from a server
+=======================================
Reset a server or list of servers
-********
+--------
SYNOPSIS
-********
-
-
+--------
-.. code-block:: perl
+.. program:: memflush
- memflush [options]
+.. option:: --help
-
-
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memflush**\ resets the contents of memcached(1) servers.
For a full list of operations run the tool with the \ **--help**\ option.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
Mark Atwood <mark@fallenpegasus.com>
-********
+--------
SEE ALSO
-********
-
+--------
memcached(1) libmemcached(3)
-
-.. highlight:: perl
-
-
-memrm
-*****
+=================================
+memrm - Remove data from a server
+=================================
memrm - Remove a key(s) from a collection of memcached servers
-********
+--------
SYNOPSIS
-********
+--------
-.. code-block:: perl
+.. program:: memrm
- memrm [options] key key ...
+.. option:: --help
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memrm**\ removes items, specified by key, from memcached(1) servers.
For a full list of operations run the tool with the \ **--help**\ option.
-****
+----
HOME
-****
+----
To find out more information please check:
`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-******
+------
AUTHOR
-******
+------
Brian Aker, <brian@tangent.org>
Mark Atwood, <mark@fallenpegasus.com>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
-.. highlight:: perl
+=================================================
+memslap - Load testing and benchmarking a server
+=================================================
-memslap
-*******
-
-
-memslap - Load testing and benchmarking tool for memcached
-
-
-********
+--------
SYNOPSIS
-********
-
-
-
-.. code-block:: perl
+--------
- memslap [options]
+.. program:: memslap [options]
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memslap**\ is a load generation and benchmark tool for memcached(1)
servers. It generates configurable workload such as threads, concurrencies, connections,
run time, overwrite, miss rate, key size, value size, get/set proportion,
-expected throughput, and so on. Furthermore, it also supports data
-verification, expire-time verification, UDP, binary protocol, facebook test,
-replication test, multi-get and reconnection, etc.
-
-Memslap manages network connections like memcached with
-libevent. Each thread of memslap is bound with a CPU core, all
-the threads don't communicate with each other, and there are several socket
-connections in each thread. Each connection keeps key size distribution,
-value size distribution, and command distribution by itself.
+expected throughput, and so on.
You can specify servers via the \ **--servers**\ option or via the
environment variable \ ``MEMCACHED_SERVERS``\ .
-********
-FEATURES
-********
-
-
-Memslap is developed to for the following purposes:
-
-
-Manages network connections with libevent asynchronously.
-
-
-
-Set both TCP and UDP up to use non-blocking IO.
-
-
-
-Improves parallelism: higher performance in multi-threads environments.
-
-
-
-Improves time efficiency: faster processing speed.
-
-
-
-Generates key and value more efficiently; key size distribution and value size distribution are configurable.
-
-
-
-Supports get, multi-get, and set commands; command distribution is configurable.
-
-
-
-Supports controllable miss rate and overwrite rate.
-
-
-
-Supports data and expire-time verification.
-
-
-
-Supports dumping statistic information periodically.
-
-
-
-Supports thousands of TCP connections.
-
-
-
-Supports binary protocol.
-
-
-
-Supports facebook test (set with TCP and multi-get with UDP) and replication test.
-
-
-
-
-*******
-DETAILS
-*******
-
-
-Effective implementation of network.
-====================================
-
-
-For memslap, both TCP and UDP use non-blocking network IO. All
-the network events are managed by libevent as memcached. The network module
-of memslap is similar to memcached. Libevent can ensure
-memslap can handle network very efficiently.
-
-
-Effective implementation of multi-threads and concurrency
-=========================================================
-
-
-Memslap has the similar implementation of multi-threads to
-memcached. Memslap creates one or more self-governed threads;
-each thread is bound with one CPU core if the system supports setting CPU
-core affinity.
-
-In addition, each thread has a libevent to manage the events of the network;
-each thread has one or more self-governed concurrencies; and each
-concurrency has one or more socket connections. All the concurrencies don’t
-communicate with each other even though they are in the same thread.
-
-Memslap can create thousands of socket connections, and each
-concurrency has tens of socket connections. Each concurrency randomly or
-sequentially selects one socket connection from its socket connection pool
-to run, so memslap can ensure each concurrency handles one
-socket connection at any given time. Users can specify the number of
-concurrency and socket connections of each concurrency according to their
-expected workload.
-
-
-Effective implementation of generating key and value
-====================================================
-
-
-In order to improve time efficiency and space efficiency,
-memslap creates a random characters table with 10M characters. All the
-suffixes of keys and values are generated from this random characters table.
-
-Memslap uses the offset in the character table and the length
-of the string to identify a string. It can save much memory.
-Each key contains two parts, a prefix and a suffix. The prefix is an
-uint64_t, 8 bytes. In order to verify the data set before,
-memslap need to ensure each key is unique, so it uses the prefix to identify
-a key. The prefix cannot include illegal characters, such as ‘\r’, ‘\n’,
-‘\0’ and ‘ ‘. And memslap has an algorithm to ensure that.
-
-Memslap doesn’t generate all the objects (key-value pairs) at
-the beginning. It only generates enough objects to fill the task window
-(default 10K objects) of each concurrency. Each object has the following
-basic information, key prefix, key suffix offset in the character table, key
-length, value offset in the character table, and value length.
-
-In the work process, each concurrency sequentially or randomly selects an
-object from the window to do set operation or get operation. At the same
-time, each concurrency kicks objects out of its window and adds new object
-into it.
-
-
-Simple but useful task scheduling
-=================================
-
-
-Memslap uses libevent to schedule all the concurrencies of
-threads, and each concurrency schedules tasks based on the local task
-window. Memslap assumes that if each concurrency keeps the same
-key distribution, value distribution and commands distribution, from
-outside, memslap keeps all the distribution as a whole.
-Each task window includes a lot of objects, each object stores its basic
-information, such as key, value, expire time, and so on. At any time, all
-the objects in the window keep the same and fixed key and value
-distribution. If an object is overwritten, the value of the object will be
-updated. Memslap verifies the data or expire-time according to
-the object information stored in the task window.
-
-Libevent selects which concurrency to handle based on a specific network
-event. Then the concurrency selects which command (get or set) to operate
-based on the command distribution. If it needs to kick out an old object and
-add a new object, in order to keep the same key and value distribution, the
-new object must have the same key length and value length.
-
-If memcached server has two cache layers (memory and SSD), running
-memslap with different window sizes can get different cache
-miss rates. If memslap adds enough objects into the windows at
-the beginning, and the cache of memcached cannot store all the objects
-initialized, then memslap will get some objects from the second
-cache layer. It causes the first cache layer to miss. So the user can
-specify the window size to get the expected miss rate of the first cache
-layer.
-
-
-Useful implementation of multi-servers , UDP, TCP, multi-get and binary protocol
-================================================================================
-
-
-Because each thread is self-governed, memslap can assign
-different threads to handle different memcached servers. This is just one of
-the ways in which memslap supports multiple servers. The only
-limitation is that the number of servers cannot be greater than the number
-of threads. The other way to support multiple servers is for replication
-test. Each concurrency has one socket connection to each memcached server.
-For the implementation, memslap can set some objects to one
-memcached server, and get these objects from the other servers.
-
-By default, Memslap does single get. If the user specifies
-multi-get option, memslap will collect enough get commands and
-pack and send the commands together.
-
-Memslap supports both the ASCII protocol and binary protocol,
-but it runs on the ASCII protocol by default.
-Memslap by default runs on the TCP protocol, but it also
-supports UDP. Because UDP is unreliable, dropped packages and out-of-order
-packages may occur. Memslap creates a memory buffer to handle
-these problems. Memslap tries to read all the response data of
-one command from the server and reorders the response data. If some packages
-get lost, the waiting timeout mechanism can ensure half-baked packages will
-be discarded and the next command will be sent.
-
-
-
-*****
-USAGE
-*****
-
-
-Below are some usage samples:
-
-
-memslap -s 127.0.0.1:11211 -S 5s
-
-
-
-memslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b
-
-
-
-memslap -s 127.0.0.1:11211 -F config -t 2m -w 40k -S 20s -o 0.2
-
-
-
-memslap -s 127.0.0.1:11211 -F config -t 2m -T 4 -c 128 -d 20 -P 40k
-
-
-
-memslap -s 127.0.0.1:11211 -F config -t 2m -d 50 -a -n 40
-
-
-
-memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m
-
-
-
-memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2
-
-
-
-The user must specify one server at least to run memslap. The
-rest of the parameters have default values, as shown below:
-
-Thread number = 1 Concurrency = 16
-
-Run time = 600 seconds Configuration file = NULL
-
-Key size = 64 Value size = 1024
-
-Get/set = 9:1 Window size = 10k
-
-Execute number = 0 Single get = true
-
-Multi-get = false Number of sockets of each concurrency = 1
-
-Reconnect = false Data verification = false
-
-Expire-time verification = false ASCII protocol = true
-
-Binary protocol = false Dumping statistic information
-
-periodically = false
-
-Overwrite proportion = 0% UDP = false
-
-TCP = true Limit throughput = false
-
-Facebook test = false Replication test = false
-
-Key size, value size and command distribution.
-==============================================
-
-
-All the distributions are read from the configuration file specified by user
-with “—cfg_cmd” option. If the user does not specify a configuration file,
-memslap will run with the default distribution (key size = 64,
-value size = 1024, get/set = 9:1). For information on how to edit the
-configuration file, refer to the “Configuration File” section.
-
-The minimum key size is 16 bytes; the maximum key size is 250 bytes. The
-precision of proportion is 0.001. The proportion of distribution will be
-rounded to 3 decimal places.
-
-The minimum value size is 1 bytes; the maximum value size is 1M bytes. The
-precision of proportion is 0.001. The proportion of distribution will be
-rounded to 3 decimal places.
-Currently, memslap only supports set and get commands. And it
-supports 100% set and 100% get. For 100% get, it will preset some objects to
-the server.
-
-
-Multi-thread and concurrency
-============================
-
-
-The high performance of memslap benefits from the special
-schedule of thread and concurrency. It’s important to specify the proper
-number of them. The default number of threads is 1; the default number of
-concurrency is 16. The user can use “—threads” and “--concurrency” to
-specify these variables.
-
-If the system supports setting CPU affinity and the number of threads
-specified by the user is greater than 1, memslap will try to
-bind each thread to a different CPU core. So if you want to get the best
-performance memslap, it is better to specify the number of
-thread equal to the number of CPU cores. The number of threads specified by
-the user can also be less or greater than the number of CPU cores. Because
-of the limitation of implementation, the number of concurrencies could be
-the multiple of the number of threads.
-
-1. For 8 CPU cores system
-
-For example:
-
---threads=2 --concurrency=128
-
---threads=8 --concurrency=128
-
---threads=8 --concurrency=256
-
---threads=12 --concurrency=144
-
-2. For 16 CPU cores system
-
-For example:
-
---threads=8 --concurrency=128
-
---threads=16 --concurrency=256
-
---threads=16 --concurrency=512
-
---threads=24 --concurrency=288
-
-The memslap performs very well, when
-used to test the performance of memcached servers.
-Most of the time, the bottleneck is the network or
-the server. If for some reason the user wants to
-limit the performance of memslap, there
-are two ways to do this:
-
-Decrease the number of threads and concurrencies.
-Use the option “--tps” that memslap
-provides to limit the throughput. This option allows
-the user to get the expected throughput. For
-example, assume that the maximum throughput is 50
-kops/s for a specific configuration, you can specify
-the throughput equal to or less than the maximum
-throughput using “--tps” option.
-
-
-Window size
-===========
-
-
-Most of the time, the user does not need to specify the window size. The
-default window size is 10k. For Schooner Memcached, the user can specify
-different window sizes to get different cache miss rates based on the test
-case. Memslap supports cache miss rate between 0% and 100%.
-If you use this utility to test the performance of Schooner Memcached, you
-can specify a proper window size to get the expected cache miss rate. The
-formula for calculating window size is as follows:
-
-Assume that the key size is 128 bytes, and the value size is 2048 bytes, and
-concurrency=128.
-
-1. Small cache cache_size=1M, 100% cache miss (all data get from SSD).
-win_size=10k
-
-2. cache_size=4G
-
-(1). cache miss rate 0%
-
-win_size=8k
-
-(2). cache miss rate 5%
-
-win_size=11k
-
-3. cache_size=16G
-
-(1). cache miss rate 0%
-
-win_size=32k
-
-(2). cache miss
-
-rate 5%
-
-win_size=46k
-
-The formula for calculating window size for cache miss rate 0%:
-
-cache_size / concurrency / (key_size + value_size) \* 0.5
-
-The formula for calculating window size for cache miss rate 5%:
-
-cache_size / concurrency / (key_size + value_size) \* 0.7
-
-
-Verification
-============
-
-
-Memslap supports both data verification and expire-time
-verification. The user can use "--verify=" or "-v" to specify the proportion
-of data verification. In theory, it supports 100% data verification. The
-user can use "--exp_verify=" or "-e" to specify the proportion of
-expire-time verification. In theory, it supports 100% expire-time
-verification. Specify the "--verbose" options to get more detailed error
-information.
-
-For example: --exp_verify=0.01 –verify=0.1 , it means that 1% of the objects
-set with expire-time, 10% of the objects gotten will be verified. If the
-objects are gotten, memslap will verify the expire-time and
-value.
-
-
-multi-servers and multi-clients
-===============================
-
-
-Memslap supports multi-servers based on self-governed thread.
-There is a limitation that the number of servers cannot be greater than the
-number of threads. Memslap assigns one thread to handle one
-server at least. The user can use the "--servers=" or "-s" option to specify
-multi-servers.
-
-For example:
-
---servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 --threads=6 --concurrency=36
-
-The above command means that there are 6 threads, with each thread having 6
-concurrencies and that threads 0 and 3 handle server 0 (10.1.1.1); threads 1
-and 4 handle server 1 (10.1.1.2); and thread 2 and 5 handle server 2
-(10.1.1.3).
-
-All the threads and concurrencies in memslap are self-governed.
-
-So is memslap. The user can start up several
-memslap instances. The user can run memslap on different client
-machines to communicate with the same memcached server at the same. It is
-recommended that the user start different memslap on different
-machines using the same configuration.
-
-
-Run with execute number mode or time mode
-=========================================
-
-
-The default memslap runs with time mode. The default run time
-is 10 minutes. If it times out, memslap will exit. Do not
-specify both execute number mode and time mode at the same time; just
-specify one instead.
-
-For example:
-
---time=30s (It means the test will run 30 seconds.)
-
---execute_number=100000 (It means that after running 100000 commands, the test will exit.)
-
-
-Dump statistic information periodically.
-========================================
-
-
-The user can use "--stat_freq=" or "-S" to specify the frequency.
-
-For example:
-
---stat_freq=20s
-
-Memslap will dump the statistics of the commands (get and set) at the frequency of every 20
-seconds.
-
-For more information on the format of dumping statistic information, refer to “Format of Output” section.
-
-
-Multi-get
-=========
-
-
-The user can use "--division=" or "-d" to specify multi-get keys count.
-Memslap by default does single get with TCP. Memslap also supports data
-verification and expire-time verification for multi-get.
-
-Memslap supports multi-get with both TCP and UDP. Because of
-the different implementation of the ASCII protocol and binary protocol,
-there are some differences between the two. For the ASCII protocol,
-memslap sends one “multi-get” to the server once. For the
-binary protocol, memslap sends several single get commands
-together as “multi-get” to the server.
-
-
-UDP and TCP
-===========
-
-
-Memslap supports both UDP and TCP. For TCP,
-memslap does not reconnect the memcached server if socket connections are
-lost. If all the socket connections are lost or memcached server crashes,
-memslap will exit. If the user specifies the “--reconnect”
-option when socket connections are lost, it will reconnect them.
-
-User can use “--udp” to enable the UDP feature, but UDP comes with some
-limitations:
-
-UDP cannot set data more than 1400 bytes.
-
-UDP is not supported by the binary protocol because the binary protocol of
-memcached does not support that.
-
-UDP doesn’t support reconnection.
-
-
-Facebook test
-=============
-
-
-Set data with TCP and multi-get with UDP. Specify the following options:
-
-"--facebook --division=50"
-
-If you want to create thousands of TCP connections, specify the
-
-"--conn_sock=" option.
-
-For example: --facebook --division=50 --conn_sock=200
-
-The above command means that memslap will do facebook test,
-each concurrency has 200 socket TCP connections and one UDP socket.
-
-Memslap sets objects with the TCP socket, and multi-gets 50
-objects once with the UDP socket.
-
-If you specify "--division=50", the key size must be less that 25 bytes
-because the UDP packet size is 1400 bytes.
-
-
-Replication test
-================
-
-
-For replication test, the user must specify at least two memcached servers.
-The user can use “—rep_write=” option to enable feature.
-
-For example:
-
---servers=10.1.1.1:11211,10.1.1.2:11212 –rep_write=2
-
-The above command means that there are 2 replication memcached servers,
-memslap will set objects to both server 0 and server 1, get
-objects which are set to server 0 before from server 1, and also get objects
-which are set to server 1 before from server 0. If server 0 crashes,
-memslap will only get objects from server 1. If server 0 comes
-back to life again, memslap will reconnect server 0. If both
-server 0 and server 1 crash, memslap will exit.
-
-
-Supports thousands of TCP connections
-=====================================
-
-
-Start memslap with "--conn_sock=" or "-n" to enable this
-feature. Make sure that your system can support opening thousands of files
-and creating thousands of sockets. However, this feature does not support
-reconnection if sockets disconnect.
-
-For example:
-
---threads=8 --concurrency=128 --conn_sock=128
-
-The above command means that memslap starts up 8 threads, each
-thread has 16 concurrencies, each concurrency has 128 TCP socket
-connections, and the total number of TCP socket connections is 128 \* 128 =
-16384.
-
-
-Supports binary protocol
-========================
-
-
-Start memslap with "--binary" or "-B" options to enable this
-feature. It supports all the above features except UDP, because the latest
-memcached 1.3.3 does not implement binary UDP protocol.
-
-For example:
-
---binary
-
-Since memcached 1.3.3 doesn't implement binary UDP protocol,
-memslap does not support UDP. In addition, memcached 1.3.3 does not support
-multi-get. If you specify "--division=50" option, it just sends 50 get
-commands together as “mulit-get” to the server.
-
-
-
-******************
-Configuration file
-******************
-
-
-This section describes the format of the configuration file. By default
-when no configuration file is specified memslap reads the default
-one located at ~/.memslap.cnf.
-
-Below is a sample configuration file:
-
-
-.. code-block:: perl
-
- ***************************************************************************
- #comments should start with '#'
- #key
- #start_len end_len proportion
- #
- #key length range from start_len to end_len
- #start_len must be equal to or greater than 16
- #end_len must be equal to or less than 250
- #start_len must be equal to or greater than end_len
- #memslap will generate keys according to the key range
- #proportion: indicates keys generated from one range accounts for the total
- generated keys
- #
- #example1: key range 16~100 accounts for 80%
- # key range 101~200 accounts for 10%
- # key range 201~250 accounts for 10%
- # total should be 1 (0.8+0.1+0.1 = 1)
- #
- # 16 100 0.8
- # 101 200 0.1
- # 201 249 0.1
- #
- #example2: all keys length are 128 bytes
- #
- # 128 128 1
- key
- 128 128 1
- #value
- #start_len end_len proportion
- #
- #value length range from start_len to end_len
- #start_len must be equal to or greater than 1
- #end_len must be equal to or less than 1M
- #start_len must be equal to or greater than end_len
- #memslap will generate values according to the value range
- #proportion: indicates values generated from one range accounts for the
- total generated values
- #
- #example1: value range 1~1000 accounts for 80%
- # value range 1001~10000 accounts for 10%
- # value range 10001~100000 accounts for 10%
- # total should be 1 (0.8+0.1+0.1 = 1)
- #
- # 1 1000 0.8
- # 1001 10000 0.1
- # 10001 100000 0.1
- #
- #example2: all value length are 128 bytes
- #
- # 128 128 1
- value
- 2048 2048 1
- #cmd
- #cmd_type cmd_proportion
- #
- #currently memslap only supports get and set command.
- #
- #cmd_type
- #set 0
- #get 1
- #
- #example: set command accounts for 50%
- # get command accounts for 50%
- # total should be 1 (0.5+0.5 = 1)
- #
- # cmd
- # 0 0.5
- # 1 0.5
- cmd
- 0 0.1
- 1.0 0.9
-
-
-
-****************
-Format of output
-****************
-
-
-At the beginning, memslap displays some configuration information as follows:
-
-
-servers : 127.0.0.1:11211
-
-
-
-threads count: 1
-
-
-
-concurrency: 16
-
-
-
-run time: 20s
-
-
-
-windows size: 10k
-
-
-
-set proportion: set_prop=0.10
-
-
-
-get proportion: get_prop=0.90
-
-
-
-Where
-=====
-
-
-
-servers : "servers"
-
- The servers used by memslap.
-
-
-
-threads count
-
- The number of threads memslap runs with.
-
-
-
-concurrency
-
- The number of concurrencies memslap runs with.
-
-
-
-run time
-
- How long to run memslap.
-
-
-
-windows size
-
- The task window size of each concurrency.
-
-
-
-set proportion
-
- The proportion of set command.
-
-
-
-get proportion
-
- The proportion of get command.
-
-
-
-The output of dynamic statistics is something like this:
-
-
-.. code-block:: perl
-
- ---------------------------------------------------------------------------------------------------------------------------------
- Get Statistics
- Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
- Avg(us) Std_dev Geo_dist
- Period 5 345826 69165 65.3 0 27 2198 203
- 95.43 177.29
- Global 20 1257935 62896 71.8 0 26 3791 224
- 117.79 192.60
-
-
- Set Statistics
- Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
- Avg(us) Std_dev Geo_dist
- Period 5 38425 7685 7.3 0 42 628 240
- 88.05 220.21
- Global 20 139780 6989 8.0 0 37 3790 253
- 117.93 224.83
-
-
- Total Statistics
- Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us)
- Avg(us) Std_dev Geo_dist
- Period 5 384252 76850 72.5 0 27 2198 207
- 94.72 181.18
- Global 20 1397720 69886 79.7 0 26 3791 227
- 117.93 195.60
- ---------------------------------------------------------------------------------------------------------------------------------
-
-
-
-Where
-=====
-
-
-
-Get Statistics
-
- Statistics information of get command
-
-
-
-Set Statistics
-
- Statistics information of set command
-
-
-
-Total Statistics
-
- Statistics information of both get and set command
-
-
-
-Period
-
- Result within a period
-
-
-
-Global
-
- Accumulated results
-
-
-
-Ops
-
- Total operations
-
-
-
-TPS
-
- Throughput, operations/second
-
-
-
-Net
-
- The rate of network
-
-
-
-Get_miss
-
- How many objects can’t be gotten
-
-
-
-Min
-
- The minimum response time
-
-
-
-Max
-
- The maximum response time
-
-
-
-Avg:
-
- The average response time
-
-
-
-Std_dev
-
- Standard deviation of response time
-
-
-
-Geo_dist
-
- Geometric distribution based on natural exponential function
-
-
-
-At the end, memslap will output something like this:
-
-
-.. code-block:: perl
-
- ---------------------------------------------------------------------------------------------------------------------------------
- Get Statistics (1257956 events)
- Min: 26
- Max: 3791
- Avg: 224
- Geo: 192.60
- Std: 116.23
- Log2 Dist:
- 4: 0 10 84490 215345
- 8: 484890 459823 12543 824
- 12: 31
-
- Set Statistics (139782 events)
- Min: 37
- Max: 3790
- Avg: 253
- Geo: 224.84
- Std: 116.83
- Log2 Dist:
- 4: 0 0 4200 16988
- 8: 50784 65574 2064 167
- 12: 5
-
- Total Statistics (1397738 events)
- Min: 26
- Max: 3791
- Avg: 227
- Geo: 195.60
- Std: 116.60
- Log2 Dist:
- 4: 0 10 88690 232333
- 8: 535674 525397 14607 991
- 12: 36
-
- cmd_get: 1257969
- cmd_set: 139785
- get_misses: 0
- verify_misses: 0
- verify_failed: 0
- expired_get: 0
- unexpired_unget: 0
- written_bytes: 242516030
- read_bytes: 1003702556
- object_bytes: 152086080
- packet_disorder: 0
- packet_drop: 0
- udp_timeout: 0
-
- Run time: 20.0s Ops: 1397754 TPS: 69817 Net_rate: 59.4M/s
- ---------------------------------------------------------------------------------------------------------------------------------
-
-
-
-Where
-=====
-
-
-
-Get Statistics
-
- Get statistics of response time
-
-
-
-Set Statistics
-
- Set statistics of response time
-
-
-
-Total Statistics
-
- Both get and set statistics of response time
-
-
-
-Min
-
- The accumulated and minimum response time
-
-
-
-Max
-
- The accumulated and maximum response time
-
-
-
-Avg
-
- The accumulated and average response time
-
-
-
-Std
-
- Standard deviation of response time
-
-
-
-Log2 Dist
-
- Geometric distribution based on logarithm 2
-
-
-
-cmd_get
-
- Total get commands done
-
-
-
-cmd_set
-
- Total set commands done
-
-
-
-get_misses
-
- How many objects can’t be gotten from server
-
-
-
-verify_misses
-
- How many objects need to verify but can’t get them
-
-
-
-verify_failed
-
- How many objects with insistent value
-
-
-
-expired_get
-
- How many objects are expired but we get them
-
-
-
-unexpired_unget
-
- How many objects are unexpired but we can’t get them
-
-
-
-written_bytes
-
- Total written bytes
-
-
-
-read_bytes
-
- Total read bytes
-
-
-
-object_bytes
-
- Total object bytes
-
-
-
-packet_disorder
-
- How many UDP packages are disorder
-
-
-
-packet_drop
-
- How many UDP packages are lost
-
-
-
-udp_timeout
-
- How many times UDP time out happen
-
-
-
-Run time
-
- Total run time
-
-
-
-Ops
-
- Total operations
-
-
-
-TPS
-
- Throughput, operations/second
-
-
-
-Net_rate
-
- The average rate of network
-
-
-
-
-
-*******
-OPTIONS
-*******
-
-
--s, --servers=
- List one or more servers to connect. Servers count must be less than
- threads count. e.g.: --servers=localhost:1234,localhost:11211
-
--T, --threads=
- Number of threads to startup, better equal to CPU numbers. Default 8.
-
--c, --concurrency=
- Number of concurrency to simulate with load. Default 128.
-
--n, --conn_sock=
- Number of TCP socks per concurrency. Default 1.
-
--x, --execute_number=
- Number of operations(get and set) to execute for the
- given test. Default 1000000.
-
--t, --time=
- How long the test to run, suffix: s-seconds, m-minutes, h-hours,
- d-days e.g.: --time=2h.
-
--F, --cfg_cmd=
- Load the configure file to get command,key and value distribution list.
-
--w, --win_size=
- Task window size of each concurrency, suffix: K, M e.g.: --win_size=10k.
- Default 10k.
-
--X, --fixed_size=
- Fixed length of value.
-
--v, --verify=
- The proportion of date verification, e.g.: --verify=0.01
-
--d, --division=
- Number of keys to multi-get once. Default 1, means single get.
-
--S, --stat_freq=
- Frequency of dumping statistic information. suffix: s-seconds,
- m-minutes, e.g.: --resp_freq=10s.
-
--e, --exp_verify=
- The proportion of objects with expire time, e.g.: --exp_verify=0.01.
- Default no object with expire time
-
--o, --overwrite=
- The proportion of objects need overwrite, e.g.: --overwrite=0.01.
- Default never overwrite object.
-
--R, --reconnect
- Reconnect support, when connection is closed it will be reconnected.
-
--U, --udp
- UDP support, default memslap uses TCP, TCP port and UDP port of
- server must be same.
-
--a, --facebook
- Whether it enables facebook test feature, set with TCP and multi-get with UDP.
-
--B, --binary
- Whether it enables binary protocol. Default with ASCII protocol.
-
--P, --tps=
- Expected throughput, suffix: K, e.g.: --tps=10k.
-
--p, --rep_write=
- The first nth servers can write data, e.g.: --rep_write=2.
-
--b, --verbose
- Whether it outputs detailed information when verification fails.
-
--h, --help
- Display this message and then exit.
-
--V, --version
- Display the version of the application and then exit.
-
-
-********
-EXAMPLES
-********
-
-
-memslap -s 127.0.0.1:11211 -S 5s
-
-memslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b
-
-memslap -s 127.0.0.1:11211 -F config -t 2m -w 40k -S 20s -o 0.2
-
-memslap -s 127.0.0.1:11211 -F config -t 2m -T 4 -c 128 -d 20 -P 40k
-
-memslap -s 127.0.0.1:11211 -F config -t 2m -d 50 -a -n 40
-
-memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m
-
-memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2
-
-
-****
-HOME
-****
-
-
-To find out more information please check:
-`http://launchpad.org/libmemcached <http://launchpad.org/libmemcached>`_
-
-
-*******
-AUTHORS
-*******
-
-
-Mingqiang Zhuang <mingqiangzhuang@hengtiansoft.com> (Schooner Technolgy)
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
SEE ALSO
-********
-
+--------
-memcached(1) libmemcached(3)
+:manpage:`memcached(1)` :manpage:`libmemcached(3)`
-.. highlight:: perl
-
-
-memstat
-*******
+=========================================
+memstat - Gather statistics from a server
+=========================================
memstat - Display the operating status of a single or group of memcached servers
-********
+--------
SYNOPSIS
-********
-
-
-
-.. code-block:: perl
-
- memstat [options]
+--------
+.. program:: memstat
+.. option:: --help
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memstat**\ dumps the state of memcached(1) servers.
For a full list of operations run the tool with the \ **--help**\ option.
-****
+----
HOME
-****
+----
To find out more information please check:
`http://launchpad.org/libmemcached <http://launchpad.org/libmemcached>`_
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-Mark Atwood, <mark@fallenpegasus.com>
-
-
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)