blob: e25542a3b20b2608d09de8a8edd4fbc6dd23bddd [file] [log] [blame]
---
title: Deploying and Configuring a Gemcached Server
---
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
You can configure and deploy Gemcached servers in a Java class or by using the gfsh command-line interface.
The following sections describe how to configure and deploy an embedded Gemcached server. You can configure and start a GemCached server either by invoking a Java class that calls the cache server's `start()` method, or by starting the cache server using the gfsh command line.
## <a id="topic_7B158074B27A4FEF9D38E7C369905C72__section_17E7E4058D914334B9C5AC2E3DC1F7F2" class="no-quick-link"></a>Embedding a Gemcached server in a <%=vars.product_name%> Java Application
The `org.apache.geode.memcached` package contains a single class, `GemFireMemcachedServer` (see the <%=vars.product_name%> Javadocs.) Use this class to configure and embed a Gemcached server in a <%=vars.product_name%> cache server. For example, the following statement creates and starts an embedded Gemcached server on port number 5555 using the binary protocol:
``` pre
GemFireMemcachedServer server =
new GemFireMemcachedServer(5555, Protocol.BINARY);server.start();
```
**Note:**
By default, Gemcached servers use the ASCII protocol.
When you start a Gemcached server, by default, it creates a `RegionShortcut.PARTITION` region named `gemcached` where data used by memcached clients is stored. You can alter these defaults by configuring the region using the `cache.xml` or `gemfire.properties` files. See [Distributed System and Cache Configuration](../../basic_config/config_concepts/chapter_overview.html).
## <a id="topic_7B158074B27A4FEF9D38E7C369905C72__section_58A3FFED5BBB4F92A79FBD50421DC3F3" class="no-quick-link"></a>Starting a Gemcached Server Using a gfsh Command
You can also start a Gemcached server with the gfsh command-line interface. Use the following syntax:
``` pre
gfsh>start server
--name=<server_name>
--server-port=<port_number>
--memcached-port=<port_number>
--memcached-protocol=BINARY|ASCII
```
**Note:**
You can also set the memcached port number and protocol in the `gemfire.properties` file.
If the `memcached-port` property is not specified, the embedded Gemcached server is not started.
## <a id="topic_7B158074B27A4FEF9D38E7C369905C72__section_E5587FE56A21424FBAEE8CF61DF34219" class="no-quick-link"></a>Configuring a Gemcached Server with the gemfire.properties File
You can set the following properties in the `gemfire.properties` file that are used when starting Gemcached servers:
<a id="topic_7B158074B27A4FEF9D38E7C369905C72__table_3F586259E06E42C4BD82AD661B3AFEA4"></a>
<table>
<caption><span class="tablecap">Table 1. Gemcached Properties</span></caption>
<colgroup>
<col width="50%" />
<col width="50%" />
</colgroup>
<thead>
<tr class="header">
<th><p>Property</p></th>
<th><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="ph codeph">memcached-port</code></td>
<td><p>The port number where the Gemcached server listens for connections from memcached clients.</p>
<p>If the port number is set to 0 or the <code class="ph codeph">memcached-port</code> parameter is omitted, the Gemcached server does not start.</p></td>
</tr>
<tr>
<td><code class="ph codeph">memcached-protocol</code></td>
<td><p>Memcached supports both ASCII and binary communication protocols.
(See <a href="https://github.com/memcached/memcached/blob/master/doc/protocol.txt">Memcached protocol</a> By default, Gemcached uses the ASCII protocol.</p>
<p>Set one of the following values:</p>
<ul>
<li><code class="ph codeph">ASCII</code> (default)</li>
<li><code class="ph codeph">BINARY</code></li>
</ul></td>
</tr>
</tbody>
</table>
<span class="tablecap">Table 1. Gemcached Properties</span>