# Postfix memcache client Howto

## Introduction

The Postfix memcache client allows you to hook up Postfix to a memcache server. The current implementation supports one memcache server per Postfix table, with one optional Postfix database that provides persistent backup. The Postfix memcache client supports the lookup, update, delete and sequence operations. The sequence (i.e. first/next) operation requires a backup database that supports this operation.

Typically, the Postfix memcache client is used to reduce query load on a persistent database, but it may also be used to query a memory-only database for low-value, easy-to-recreate, information such as a reputation cache for postscreen(8), verify(8) or greylisting.

## Limitations

- The Postfix memcache client cannot be used for security-sensitive tables such as `alias_maps` (these may contain "`|command`" and "`/file/name`" destinations), or `virtual_uid_maps`, `virtual_gid_maps` and `virtual_mailbox_maps` (these specify UNIX process privileges or "`/file/name`" destinations). Typically, a memcache database is writable by any process that can talk to the memcache server; in contrast, security-sensitive tables must never be writable by the unprivileged Postfix user.

- The Postfix memcache client requires additional configuration when used as postscreen(8) or verify(8) cache. For details see the `backup` and `ttl` parameter discussions in the memcache_table(5) manual page.

## Building Postfix with memcache support

The Postfix memcache client has no external dependencies, and is therefore built into Postfix by default.

## Configuring memcache lookup tables

Configuration is described in the memcache_table(5) manpage.

## Credits

The first memcache client for Postfix was written by Omar Kilani, and was based on the libmemcache library.

Wietse wrote the current memcache client from the ground up for Postfix version 2.9. This implementation does not use libmemcache, and bears no resemblance to earlier work.