[OpenSIPS-Users] [NEW]memcached implementation for memory caching
andrei dragus
andreidragus at yahoo.com
Wed Jul 15 15:57:16 CEST 2009
Hello,
A new module that provides a new caching method using memcached servers was added.
It provides a way to access memcached servers using the existing memcache API.
Advantages over the existing "localcache" module:
- 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 applications
- servers may be grouped together (e.g. for security purposes : some can be inside a private network, some can be in a public one).
Limitations:
- keys (in key:value pairs) may not contain spaces or control characters
Requirements:
- libmemcahed is a dependency of the module ( see docs)
- memcached servers must exist somewhere accessible via the network.
Usage:
- memcached module must be loaded
- server parameters must be set
E.g:
...
modparam("memcached", "server","group1 = localhost:9999,127.0.0.1" );
modparam("memcached", "server","y = random_url:8888" );
...
This creates two groups of servers( one called "group1" and one called "y").
- Calls to the two groups will be done via the memcache API by passing the first parameter as "memcached_($GROUP_NAME)".
E.g:
...
cache_store("memcached_group1","key","$ru value");
...
This stores "key"="$ru value" on the group denoted by "group1".
The key is only stored on one of the servers in a consistent fashion (subsequent calls with "key" will be stored, deleted from the same server).
...
cache_fetch("memcached_y","key",$avp(i:10));
cache_remove("memcached_y","key");
...
This attempts to fetch/remove key from the group named "y".
Thanks, Andrei.
More information about the Users
mailing list