('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),
-------
-C Library for hashing algorithms (libhashkit, -lhashkit)
+C Library for hashing algorithms (libmemcached, -lhashkit)
--------
-------
-C Library for hashing algorithms (libhashkit, -lhashkit)
+C Library for hashing algorithms (libmemcached, -lhashkit)
--------
.. 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);
-------
-C Library for hashing algorithms (libhashkit, -lhashkit)
+C Library for hashing algorithms (libmemcached, -lhashkit)
--------
.. code-block:: perl
- #include <libhashkit/hashkit.h>
+ #include <libmemcached/hashkit.h>
uint32_t hashkit_value(hashkit_st *hash,
const char *key,
docs/memerror.rst \
docs/memflush.rst \
docs/memrm.rst \
+ docs/memaslap.rst \
docs/memslap.rst \
docs/memstat.rst \
docs/_static \
docs/memflush.rst \
docs/memrm.rst \
docs/memslap.rst \
+ docs/memaslap.rst \
docs/memstat.rst
# Makefile for Sphinx documentation
docs/man/memerror.1 \
docs/man/memflush.1 \
docs/man/memrm.1 \
+ docs/man/memaslap.1 \
docs/man/memslap.1 \
docs/man/memstat.1
libmemcached
libmemcached_examples
+ libmemcached_configuration
libmemcachedutil
memcached_analyze
memcached_auto
memcached_user_data
memcached_verbosity
memcached_version
+
+-------------------
+Client Applications
+-------------------
+
+.. toctree::
+ :maxdepth: 2
+
memcapable
memcat
memcp
memflush
memrm
memslap
+ memaslap
memstat
----------
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)
--- /dev/null
+========================
+Configuring Libmemcached
+========================
+
+Libmemcached implements a custom language for configuring and modifying servers.
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
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
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)
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
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
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)
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)
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)
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)
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
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
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)
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)
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
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
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)
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)
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)
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)
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
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
.\" Man page generated from reStructeredText.
.
.sp
-libmemcachedutil \- Utility library for libmemcached
-.SH LIBRARY
+Utility library for libmemcached
.sp
C Client Library containing utility functions for libmemcached (libmemcachedutil, \-lmemcachedutil)
-.SH SYNOPSIS
.sp
.nf
.ft C
#include <libmemcached/memcached_util.h>
.ft P
.fi
-.SH DESCRIPTION
.sp
\fBlibmemcachedutil\fP is a small and thread\-safe client library that provides
extra functionality built on top of \fBlibmemcached\fP.
-.SH THREADS
.sp
Do not try to access an instance of \fBmemcached_st\fP from multiple threads
at the same time. If you want to access memcached from multiple threads
you should either clone the \fBmemcached_st\fP, or use the memcached pool
implementation. see memcached_pool_create(3).
-.SH HOME
.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
--- /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.
+.
+.sp
+memaslap \- Load testing and benchmarking tool for memcached
+.SH SYNOPSIS
+.sp
+.nf
+.ft C
+memaslap [options]
+.ft P
+.fi
+.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 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 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 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 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 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, 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 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
+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 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 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 supports 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 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, memaslap 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 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 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,
+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 supports 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 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 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 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 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 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,
+memaslap 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 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 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, 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 support, when connection is closed it will be reconnected.
+.TP
+.B \-U, \-\-udp
+.
+UDP support, 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 \fImemcached_strerror(3)\fP
+.SH AUTHOR
+Brian Aker
+.SH COPYRIGHT
+2011, Brian Aker
+.\" 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)
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)
.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
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)
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 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
.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
.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
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
memcached_return_t *error);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can have callbacks set key execution points. These either
provide function calls at points in the code, or return pointers to
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
memcached_return_t *error);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can have callbacks set key execution points. These either
provide function calls at points in the code, or return pointers to
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
memcached_return_t *error);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can have callbacks set key execution points. These either
provide function calls at points in the code, or return pointers to
.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
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)
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 LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_servers_reset(memcached_st);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_create() is used to create a \fBmemcached_st\fP structure that will then
be used by other libmemcached(3) functions to communicate with the server. You
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_servers_reset(memcached_st);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_create() is used to create a \fBmemcached_st\fP structure that will then
be used by other libmemcached(3) functions to communicate with the server. You
.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
.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
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
time_t expiration);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_delete() is used to delete a particular key.
memcached_delete_by_key() works the same, but it takes a master key to
"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
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
time_t expiration);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_delete() is used to delete a particular key.
memcached_delete_by_key() works the same, but it takes a master key to
"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
.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
.\" Man page generated from reStructeredText.
.
.sp
-SASL support
-.SH LIBRARY
+memcached_set_sasl_callbacks, memcached_get_sasl_callbacks, memcached_sasl_set_auth_data, memcached_destroy_sasl_auth_data
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-**
+.sp
+SASL tests
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
You as a client user have to initialize libsasl by using sasl_client_init
before enabling it in libmemcached, and you have to shut down libsasl by
calling sasl_done() when you are done using SASL from libmemcached.
-.SH RETURN
.sp
memcached_get_sasl_callbacks() returns the callbacks currently used
by this memcached handle.
memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success.
-.SH HOME
.sp
To find out more information please check:
\fI\%http://libmemcached.org/\fP
-.SH AUTHOR
.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
.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
memcached_dump() is used to get a list of keys found memcached(1) servers.
Because memcached(1) does not guarentee to dump all keys you can not assume
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
.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
.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
.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
.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
.\" Man page generated from reStructeredText.
.
.sp
+memcached_flush
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-*
+.sp
Wipe contents of memcached servers
-.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
flush). The operation is not atomic to multiple servers, just atomic to a
single server. That is, it will flush the servers in the order that they were
added.
-.SH RETURN
.sp
A value of type \fBmemcached_return_t\fP is returned
On success that value will be \fBMEMCACHED_SUCCESS\fP.
Use memcached_strerror() to translate this value to a printable string.
-.SH HOME
.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
.\" Man page generated from reStructeredText.
.
.sp
+memcached_flush_buffers
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-*
+.sp
Flush buffers and send buffered commands
-.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
memcached_flush_buffers() is used in conjunction with
MEMCACHED_BEHAVIOR_BUFFER_REQUESTS (see memcached_behavior(3)) to flush
all buffers by sending the buffered commands to the server for processing.
-.SH RETURN
.sp
A value of type \fBmemcached_return_t\fP is returned
On success that value will be \fBMEMCACHED_SUCCESS\fP.
Use memcached_strerror() to translate this value to a printable string.
-.SH HOME
.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
-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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_servers_reset(memcached_st);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_create() is used to create a \fBmemcached_st\fP structure that will then
be used by other libmemcached(3) functions to communicate with the server. You
.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
.\" Man page generated from reStructeredText.
.
.sp
+memcached_generate_hash_value
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-**
+.sp
Hash a key value
-.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
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).
-.SH RETURN
+libmemcached(3) which is linked with libmemcached(3).
.sp
A 32\-bit integer which is the result of hashing the given key.
For 64\-bit hash algorithms, only the least\-significant 32 bits are
returned.
-.SH HOME
.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_behavior_set(3) libhashkit(3)
+\fImemcached(1)\fP \fIlibmemcached(3)\fP \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
.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
.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
.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
.\" Man page generated from reStructeredText.
.
.sp
-SASL support
-.SH LIBRARY
+memcached_set_sasl_callbacks, memcached_get_sasl_callbacks, memcached_sasl_set_auth_data, memcached_destroy_sasl_auth_data
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-**
+.sp
+SASL tests
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
You as a client user have to initialize libsasl by using sasl_client_init
before enabling it in libmemcached, and you have to shut down libsasl by
calling sasl_done() when you are done using SASL from libmemcached.
-.SH RETURN
.sp
memcached_get_sasl_callbacks() returns the callbacks currently used
by this memcached handle.
memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success.
-.SH HOME
.sp
To find out more information please check:
\fI\%http://libmemcached.org/\fP
-.SH AUTHOR
.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
.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
.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
.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
.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
.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
.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
.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
.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
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
#include <libmemcached/memcached_pool.h>
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
+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_destroy(memcached_pool_st* pool);
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+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_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_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)
+memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
may use to remove the overhead of using memcached_clone for short
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS 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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
#include <libmemcached/memcached_pool.h>
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
+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_destroy(memcached_pool_st* pool);
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+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_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_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)
+memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
may use to remove the overhead of using memcached_clone for short
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS 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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
#include <libmemcached/memcached_pool.h>
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
+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_destroy(memcached_pool_st* pool);
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+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_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_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)
+memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
may use to remove the overhead of using memcached_clone for short
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS 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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
#include <libmemcached/memcached_pool.h>
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
+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_destroy(memcached_pool_st* pool);
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+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_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_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)
+memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
may use to remove the overhead of using memcached_clone for short
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS 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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
#include <libmemcached/memcached_pool.h>
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
+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_destroy(memcached_pool_st* pool);
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+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_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_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)
+memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
may use to remove the overhead of using memcached_clone for short
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS 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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
#include <libmemcached/memcached_pool.h>
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
+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_destroy(memcached_pool_st* pool);
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+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_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_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)
+memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
may use to remove the overhead of using memcached_clone for short
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS 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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcachedutil, \-lmemcachedutil)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
#include <libmemcached/memcached_pool.h>
-memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
+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_destroy(memcached_pool_st* pool);
-memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+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_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_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)
+memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_pool_create() is used to create a connection pool of objects you
may use to remove the overhead of using memcached_clone for short
.SH AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
-.SH SEE ALSO
+.SS 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
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)
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 LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_quit (memcached_st *ptr);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_quit() will disconnect you from all currently connected servers.
It will also reset the state of the connection (ie, any memcached_fetch() you
.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
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)
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 LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_result_set_expiration (memcached_result_st *ptr, time_t)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can optionally return a memcached_result_st which acts as a
result object. The result objects have added benefits over the character
.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.
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_result_set_expiration (memcached_result_st *ptr, time_t)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can optionally return a memcached_result_st which acts as a
result object. The result objects have added benefits over the character
.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.
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_result_set_expiration (memcached_result_st *ptr, time_t)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can optionally return a memcached_result_st which acts as a
result object. The result objects have added benefits over the character
.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.
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_result_set_expiration (memcached_result_st *ptr, time_t)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can optionally return a memcached_result_st which acts as a
result object. The result objects have added benefits over the character
.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.
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_result_set_expiration (memcached_result_st *ptr, time_t)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can optionally return a memcached_result_st which acts as a
result object. The result objects have added benefits over the character
.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.
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_result_set_expiration (memcached_result_st *ptr, time_t)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can optionally return a memcached_result_st which acts as a
result object. The result objects have added benefits over the character
.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.
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_result_set_expiration (memcached_result_st *ptr, time_t)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can optionally return a memcached_result_st which acts as a
result object. The result objects have added benefits over the character
.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.
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_result_set_expiration (memcached_result_st *ptr, time_t)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can optionally return a memcached_result_st which acts as a
result object. The result objects have added benefits over the character
.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.
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_result_set_expiration (memcached_result_st *ptr, time_t)
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
libmemcached(3) can optionally return a memcached_result_st which acts as a
result object. The result objects have added benefits over the character
.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.
.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
.\" Man page generated from reStructeredText.
.
.sp
-SASL support
-.SH LIBRARY
+memcached_set_sasl_callbacks, memcached_get_sasl_callbacks, memcached_sasl_set_auth_data, memcached_destroy_sasl_auth_data
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-**
+.sp
+SASL tests
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
You as a client user have to initialize libsasl by using sasl_client_init
before enabling it in libmemcached, and you have to shut down libsasl by
calling sasl_done() when you are done using SASL from libmemcached.
-.SH RETURN
.sp
memcached_get_sasl_callbacks() returns the callbacks currently used
by this memcached handle.
memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success.
-.SH HOME
.sp
To find out more information please check:
\fI\%http://libmemcached.org/\fP
-.SH AUTHOR
.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
.\" Man page generated from reStructeredText.
.
.sp
-SASL support
-.SH LIBRARY
+memcached_set_sasl_callbacks, memcached_get_sasl_callbacks, memcached_sasl_set_auth_data, memcached_destroy_sasl_auth_data
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-**
+.sp
+SASL tests
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
You as a client user have to initialize libsasl by using sasl_client_init
before enabling it in libmemcached, and you have to shut down libsasl by
calling sasl_done() when you are done using SASL from libmemcached.
-.SH RETURN
.sp
memcached_get_sasl_callbacks() returns the callbacks currently used
by this memcached handle.
memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success.
-.SH HOME
.sp
To find out more information please check:
\fI\%http://libmemcached.org/\fP
-.SH AUTHOR
.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
.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
.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
.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
.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
.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
.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
.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
.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
.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
.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
.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
.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
.SH LIBRARY
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
-.SH SYNOPSIS
+.SS SYNOPSIS
.sp
.nf
.ft C
void memcached_servers_reset(memcached_st);
.ft P
.fi
-.SH DESCRIPTION
+.SS DESCRIPTION
.sp
memcached_create() is used to create a \fBmemcached_st\fP structure that will then
be used by other libmemcached(3) functions to communicate with the server. You
.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
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)
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)
.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
.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
.\" Man page generated from reStructeredText.
.
.sp
-SASL support
-.SH LIBRARY
+memcached_set_sasl_callbacks, memcached_get_sasl_callbacks, memcached_sasl_set_auth_data, memcached_destroy_sasl_auth_data
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-**
+.sp
+SASL tests
.sp
C Client Library for memcached (libmemcached, \-lmemcached)
.SH SYNOPSIS
You as a client user have to initialize libsasl by using sasl_client_init
before enabling it in libmemcached, and you have to shut down libsasl by
calling sasl_done() when you are done using SASL from libmemcached.
-.SH RETURN
.sp
memcached_get_sasl_callbacks() returns the callbacks currently used
by this memcached handle.
memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success.
-.SH HOME
.sp
To find out more information please check:
\fI\%http://libmemcached.org/\fP
-.SH AUTHOR
.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
.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
.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
.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
.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
.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
.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
.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
..
.\" 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
.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
.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
.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
\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
+.SS OPTIONS
.sp
-The following options are supported:
+The following options are testsed:
.INDENT 0.0
.TP
.BI \-h \ hostname
.SH LIMITATIONS
.sp
The current version of memcapable will only verify the binary protocol.
-.SH HOME
+.SS HOME
.sp
To find out more information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
+.SS AUTHOR
.sp
Trond Norbye, <\fI\%trond.norbye@gmail.com\fP>
.SH SEE ALSO
environment variable \fBMEMCACHED_SERVERS\fP.
.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 information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
+.SS AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
.sp
server(s).
.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 information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
+.SS AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
.sp
provide all keys it is not possible to get a complete "dump".
.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 information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
+.SS AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
.SH SEE ALSO
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
environment variable \fBMEMCACHED_SERVERS\fP.
.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 information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
+.SS AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
.sp
environment variable \fBMEMCACHED_SERVERS\fP.
.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 information please check:
\fI\%https://launchpad.net/libmemcached\fP
-.SH AUTHOR
+.SS AUTHOR
.sp
Brian Aker, <\fI\%brian@tangent.org\fP>
.sp
.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 \fImemcached_strerror(3)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
etc..).
.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 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)
--- /dev/null
+========
+memaslap
+========
+
+
+memaslap - Load testing and benchmarking tool for memcached
+
+
+********
+SYNOPSIS
+********
+
+
+
+.. code-block:: perl
+
+ memaslap [options]
+
+
+
+***********
+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 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 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 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 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 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, 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 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:
+
+
+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 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 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 supports 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 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, memaslap 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 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 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,
+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 supports 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 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 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 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 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 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,
+memaslap 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 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 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, 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 support, when connection is closed it will be reconnected.
+
+-U, --udp
+ UDP support, 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)` :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
-********
+--------
: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
-********
+--------
: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
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) can have callbacks set key execution points. These either
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
: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
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_create() is used to create a \ ``memcached_st``\ structure that will then
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
memcached_delete
-****************
+----------------
Delete a key
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
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.
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
memcached_dump
-**************
+--------------
Get a list of keys found on memcached servers
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.
******
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
memcached_flush
-***************
+--------------*
Wipe contents of memcached servers
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_flush() is used to wipe clean the contents of memcached(1) servers.
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
memcached_flush_buffers
-***********************
+----------------------*
Flush buffers and send buffered commands
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_flush_buffers() is used in conjunction with
Trond Norbye, <trond.norbye@gmail.com>
-********
+--------
SEE ALSO
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
memcached_generate_hash_value
-*****************************
+---------------------------**
Hash a key value
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).
+libmemcached(3) which is linked with libmemcached(3).
******
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
: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
-********
+--------
: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
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
-.. highlight:: perl
-
-
-memcached_pool_create, memcached_pool_destroy, memcached_pool_push, memcached_pool_pop
-**************************************************************************************
+============================
+Working with memcached pools
+============================
Manage pools
C Client Library for memcached (libmemcachedutil, -lmemcachedutil)
-********
+--------
SYNOPSIS
-********
+--------
#include <libmemcached/memcached_pool.h>
- memcached_pool_st *
- memcached_pool_create(memcached_st* mmc, int initial, int max);
+ 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_destroy(memcached_pool_st* pool);
- memcached_st *
- memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc);
+ 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_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_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)
+ memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_pool_create() is used to create a connection pool of objects you
Trond Norbye, <trond.norbye@gmail.com>
-********
+--------
SEE ALSO
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
memcached_quit
-**************
+--------------
Disconnect from all servers
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
memcached_quit() will disconnect you from all currently connected servers.
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
: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
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.
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
memcached_set_sasl_callbacks, memcached_get_sasl_callbacks, memcached_sasl_set_auth_data, memcached_destroy_sasl_auth_data
-**************************************************************************************************************************
+------------------------------------------------------------------------------------------------------------------------**
-SASL support
+SASL tests
*******
C Client Library for memcached (libmemcached, -lmemcached)
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
libmemcached(3) allows you to plug in your own callbacks function used by
Trond Norbye, <trond.norbye@gmail.com>
-********
+--------
SEE ALSO
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
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
-********
+--------
: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
-********
+--------
:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
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
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)
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)
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)
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)
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)
Check memcached server capabilities
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memcapable**\ connects to the specified memcached server and tries to
*******
-The following options are supported:
+The following options are testsed:
-h hostname
-***********
+-----------
LIMITATIONS
-***********
+-----------
The current version of memcapable will only verify the binary protocol.
Trond Norbye, <trond.norbye@gmail.com>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
Copy a set of keys to stdout
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memcat**\ outputs to stdout the value a single or multiple set of keys
Mark Atwood <mark@fallenpegasus.com>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
Copies files to a collection of memcached servers
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memcp**\ copies one or more files into memcached(1) servers.
Mark Atwood, <mark@fallenpegasus.com>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
Dump a list of keys from a server.
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memdump**\ currently dumps a list of "keys" from all servers that
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
Translate a memcached error code to a string
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memerror**\ translate an error code from libmemcached(3) to a human
Brian Aker, <brian@tangent.org>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
Reset a server or list of servers
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memflush**\ resets the contents of memcached(1) servers.
Mark Atwood <mark@fallenpegasus.com>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
memrm - Remove a key(s) from a collection of memcached servers
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memrm**\ removes items, specified by key, from memcached(1) servers.
Mark Atwood, <mark@fallenpegasus.com>
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)
memslap - Load testing and benchmarking tool for memcached
-********
+--------
SYNOPSIS
-********
+--------
+.. program:: memslap [options]
-.. code-block:: perl
- 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)` :manpage:`memcached_strerror(3)`
memstat - Display the operating status of a single or group of memcached servers
-********
+--------
SYNOPSIS
-********
+--------
-***********
+-----------
DESCRIPTION
-***********
+-----------
\ **memstat**\ dumps the state of memcached(1) servers.
`http://launchpad.org/libmemcached <http://launchpad.org/libmemcached>`_
-********
+--------
SEE ALSO
-********
+--------
memcached(1) libmemcached(3)