The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

memcached-cli - Interactive/Batch CLI for Memcached

SYNOPSIS

Run an interactive CLI:

    memcached-cli <HOST[:PORT] | /path/to/socket> [OPTIONS]
    memcached-cli --addr|-a <HOST[:PORT] | /path/to/socket> [OPTIONS]
    memcached-cli [OPTIONS]  # Connect to 127.0.0.1:11211

These above turns into interactive mode like below:

    memcached@SERVER:PORT>
    memcached@SERVER:PORT> set foo Foo
    OK
    memcached@SERVER:PORT> add bar Bar 300
    OK
    memcached@SERVER:PORT> gets foo bar
    Key:foo Value:Foo       Length:3B       Flags:0 Cas:219
    Key:bar Value:Bar       Length:3B       Flags:0 Cas:220
    memcached@SERVER:PORT> \cd 1  # Alias of 'cachedump'
    Key:foo Value:Foo       Length:3B       Expire:2016-03-26 00:30:27      Flags:0 Cas:219
    Key:bar Value:Bar       Length:3B       Expire:2016-03-26 09:53:19      Flags:0 Cas:220
    Key:baz Value:Baz       Length:3B       Expire:2016-03-26 10:49:05      Flags:123       Cas:221
    memcached@SERVER:PORT> delete foo
    OK
    memcached@SERVER:PORT> flush_all
    OK
    memcached@SERVER:PORT> \q     # Quit interactive mode

Run as batch script:

    memcached-cli [options] <command> [<args>]

Show Help/Manual:

    # For general usage
    memcached-cli -h|--help
    memcached-cli --man

    # For available commands
    memcached@SERVER:PORT> help
    memcached@SERVER:PORT> help <command>

DESCRIPTION

This script runs an interactive CLI or batch utility for Memcached.

In interactive mode, it connects to a specified Memcached server and interactively executes each command you run.

In batch mode, you can execute any command which you can do in interactive mode.

COMMANDS

NOTE:

A couple of features of following commands derives from memcached/memcached-tool

display|\d

Displays slabs statistics.

This command comes from memcached/memcached-tool.

stats|\s REGEXP

Shows general statistics of memcached server by stats command. You can filter the parameters of stats by optional REGEXP argument.

Comes from memcached/memcached-tool.

settings|config|\c REGEXP

Shows memcached server settings by stats settings command. You can filter the parameters of stats by optional REGEXP argument.

Comes from memcached/memcached-tool, too.

cachedump|\cd CLASS [NUMBER]

Shows detailed information including expiration times of some items in specified slab CLASS.

You can specify NUMBER of items to show. Without NUMBER option, shows 20 items only by default.

detaildump|\dd

Reports statistics about data access using KEY prefix. The default separator for prefix is ':'.

If you have not enabled reporting at Memcached start-up, you can enable it by command detail on.

See man memcached(1) for details.

detail MODE

Enables or disables stats collection for stats detail dump reporting.

MODE should be either "on" or "off" to enable or to disable.

dump_all

Dumps whole data in Memcached server.

This command comes from memcached/memcached-tool.

Recommended to use in batch mode like bellow:

    memcached-cli SERVER:PORT dump_all > /path/to/dump.txt
restore_dump FILE

Restore data from dump data file created by dump_all.

randomset|sample [NUMBER [MAX_LENGTH [MIN_LENGTH [NAMESPACE]]]]

Generates random sample data and SET all of them.

By default, it generates 100 data whose length is between 1B and 1000kB with prefix "memcached-cli:sample";

get KEY1 [KEY2 ...]

Gets items in memcached by specified KEYs and shows their data.

gets KEY1 [KEY2 ...]

Gets items with CAS data in memcached by specified KEYs and shows their data.

set KEY VALUE [EXPIRE [FLAGS]]

Stores data into memcached by specified KEY, VALUE and optional EXPIRE and FLAGS.

add KEY VALUE [EXPIRE [FLAGS]]

Stores data into memcached by specified KEY, VALUE and optional EXPIRE and FLAGS only when there is NO data with the same KEY in the server.

replace KEY VALUE [EXPIRE [FLAGS]]

Stores data into memcached by specified KEY, VALUE and optional EXPIRE and FLAGS only when there IS data with the same KEY in the server.

append KEY VALUE

Appends VALUE after existing data in memcached which has specified KEY.

prepend KEY VALUE

Puts VALUE before existing data in memcached which has specified KEY.

cas KEY VALUE CAS [EXPIRE [FLAGS]]

Stores data into memcached by specified KEY, VALUE and optional EXPIRE and FLAGS only when CAS of data is not changed from specified CAS value.

touch KEY EXPIRE

Update data expiration time with specified KEY and EXPIRE.

incr KEY VALUE

Add numeric VALUE for a data with specified KEY.

decr KEY VALUE

Subtract numeric VALUE from a data with specified KEY.

delete KEY

Deletes one item in memcached by specified KEY.

flush_all|flush [DELAY]

Invalidates all data in memcached by flush_all command.

With DELAY option, invalidation is delayed for specified seconds.

See official documentation of memcached for details.

call COMMAND [ARGS ...]

Executes any commands given as arguments.

With this command, you can execute any command against Memcached including what is not implemented as normal commands in this program.

Here are some examples:

    > call stats conns
    > call slabs reassign 6 10
    > call flush_all

LIMITATION:

Multi-lined queries like set are not supported.

version

Shows memcached server version.

quit|exit|\q

Exits program in interactive mode.

help|\h [COMMAND]

Shows available COMMANDs and summary of their usage.

With optional COMMAND argument, shows detailed information of it.

OPTIONS

-t|--timeout=Int

Sets connection timeout. Default is 1 seconds.

-d|--debug

Shows debug logs.

SEE ALSO

App::Memcached::CLI::Main, memcached(1), http://www.memcached.org/

AUTHORS

IKEDA Kiyoshi <progrhyme@gmail.com>

LICENSE

Copyright (C) 2015-2017 IKEDA Kiyoshi.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. That means either (a) the GNU General Public License or (b) the Artistic License.