summaryrefslogtreecommitdiff
path: root/docs/reference/modules/memcached.asciidoc
blob: 20276d0fde8d3e1507f2f443a2aa84c46e51e455 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
[[modules-memcached]]
== memcached

The memcached module allows to expose *elasticsearch*
APIs over the memcached protocol (as closely
as possible).

It is provided as a plugin called `transport-memcached` and installing
is explained
https://github.com/elasticsearch/elasticsearch-transport-memcached[here]
. Another option is to download the memcached plugin and placing it
under the `plugins` directory.

The memcached protocol supports both the binary and the text protocol,
automatically detecting the correct one to use.

[float]
=== Mapping REST to Memcached Protocol

Memcached commands are mapped to REST and handled by the same generic
REST layer in elasticsearch. Here is a list of the memcached commands
supported:

[float]
==== GET

The memcached `GET` command maps to a REST `GET`. The key used is the
URI (with parameters). The main downside is the fact that the memcached
`GET` does not allow body in the request (and `SET` does not allow to
return a result...). For this reason, most REST APIs (like search) allow
to accept the "source" as a URI parameter as well.

[float]
==== SET

The memcached `SET` command maps to a REST `POST`. The key used is the
URI (with parameters), and the body maps to the REST body.

[float]
==== DELETE

The memcached `DELETE` command maps to a REST `DELETE`. The key used is
the URI (with parameters).

[float]
==== QUIT

The memcached `QUIT` command is supported and disconnects the client.

[float]
=== Settings

The following are the settings the can be configured for memcached:

[cols="<,<",options="header",]
|===============================================================
|Setting |Description
|`memcached.port` |A bind port range. Defaults to `11211-11311`.
|===============================================================

It also shares the uses the common
<<modules-network,network settings>>.

[float]
=== Disable memcached

The memcached module can be completely disabled and not started using by
setting `memcached.enabled` to `false`. By default it is enabled once it
is detected as a plugin.