Skip to content

MEMCACHED module

This module is an implementation of a cache system designed to work with a memcached server. It uses libmemcached client library to connect to several memcached servers that store data. It registers the three functions for storing, fetching and removing a value to the core memcache management interface.

  • memory costs are no longer on the server
  • many servers may be used so the memory is virtually unlimited
  • the cache is persistent so a restart of the server will not affect the cache
  • memcached is an open-source project so it can be used to exchange data with various other applicationsr
  • servers may be grouped together (e.g. for security purposes : some can be inside a private network, some can be in a public one)
  • keys (in key:value pairs) may not contain spaces or control characters

None.

The following libraries or applications must be installed before running OpenSIPS with this module loaded:

Terminal window
...
$ wget http://download.tangent.org/libmemcached-0.31.tar.gz
$ tar -xzvf libmemcached-0.31.tar.gz
$ cd libmemcached-0.31
$ ./configure
$ make
$ sudo make install
...

The names of the servers to connect to. It can be set more than one time. Each value represents a group of servers to connect to. Each group of servers may be accessed using “memcached_$(GROUP_NAME)” as the first parameter of the cache_fetch, cache_store, cache_remove script functions. Each group contains a list of comma separated url:[port]. If port is missing the default value is used(11211).

Set server parameter
...
modparam("memcached", "server","group1 = localhost:9999,127.0.0.1" );
modparam("memcached", "server","y = random_url:8888" );
...
Use memcached servers
...
cache_store("memcached_group1","key","$ru value");
cache_fetch("memcached_y","key",$avp(i:10));
cache_remove("memcached_group1","key");
...

The module does not export functions to be used in configuration script.

Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)

#NameDevScoreCommitsLines++Lines—
1.Andrei Dragus1146641
2.Stefan Darius (@dariusstefan)7414934
3.Bogdan-Andrei Iancu (@bogdan-iancu)5343
4.Razvan Crainea (@razvancrainea)3122

(1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted / (project_lines_deleted / project_commits)

(2) including any documentation-related commits, excluding merge commits

(3) ignoring whitespace edits, renamed files and auto-generated files

#NameCommit Activity
1.Stefan Darius (@dariusstefan)Jun 2026 - Jul 2026
2.Razvan Crainea (@razvancrainea)Jun 2026 - Jun 2026
3.Bogdan-Andrei Iancu (@bogdan-iancu)Aug 2009 - Dec 2010
4.Andrei DragusJul 2009 - Oct 2009

(1) including any documentation-related commits, excluding merge commits

Last edited by: Razvan Crainea (@razvancrainea), Andrei Dragus.

All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0