cachedb_redis Module Vladut-Stefan Paiu OpenSIPS Solutions Edited by Vladut-Stefan Paiu Copyright é 2011 www.opensips-solutions.com __________________________________________________________ Table of Contents 1. Admin Guide 1.1. Overview 1.2. Advantages 1.3. Limitations 1.4. Dependencies 1.4.1. OpenSIPS Modules 1.4.2. External Libraries or Applications 1.5. Exported Parameters 1.5.1. cachedb_url (string) 1.5.2. Exported Functions List of Examples 1.1. Set cachedb_url parameter 1.2. Use Redis servers Chapter 1. Admin Guide 1.1. Overview This module is an implementation of a cache system designed to work with a Redis server. It uses hiredis client library to connect to either a single Redis server instance, or to a Redis Server inside a Redis Cluster. It uses the Key-Value interface exported from the core. 1.2. Advantages * memory costs are no longer on the server * many servers can be used inside a cluster, so the memory is virtually unlimited * the cache is 100% persistent. A restart of OpenSIPS server will not affect the DB. The Redis DB is also persistent so it can also be restarted without loss of information. * redis is an open-source project so it can be used to exchange data with various other applicationsr * By creating a Redis Cluster, multiple OpenSIPS instances can easily share key-value information 1.3. Limitations * keys (in key:value pairs) may not contain spaces or control characters 1.4. Dependencies 1.4.1. OpenSIPS Modules None. 1.4.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSIPS with this module loaded: * hiredis: hiredis can be downloaded from: https://github.com/antirez/hiredis . Download the archive, extract sources, run make,sudo make install. 1.5. Exported Parameters 1.5.1. cachedb_url (string) The urls of the server groups that OpenSIPS will connect to in order to use the from script cache_store,cache_fetch, etc operations. It can be set more than one time. The prefix part of the URL will be the identifier that will be used from the script. Example 1.1. Set cachedb_url parameter ... modparam("cachedb_redis", "cachedb_url","redis:group1://localhost:6379/" ); modparam("cachedb_redis", "cachedb_url","redis:cluster1://random_url:888 8/"); ... Example 1.2. Use Redis servers ... cache_store("redis:group1","key","$ru value"); cache_fetch("redis:cluster1","key",$avp(10)); cache_remove("redis:cluster1","key"); ... 1.5.2. Exported Functions The module does not export functions to be used in configuration script.