Apache Portable Runtime Utility Library
Data Structures | Typedefs | Enumerations | Functions
Redis Client Routines

Data Structures

struct  apr_redis_server_t
 
struct  apr_redis_t
 
struct  apr_redis_stats_t
 

Typedefs

typedef struct apr_redis_conn_t apr_redis_conn_t
 
typedef struct apr_redis_server_t apr_redis_server_t
 
typedef struct apr_redis_t apr_redis_t
 
typedef apr_uint32_t(* apr_redis_hash_func) (void *baton, const char *data, const apr_size_t data_len)
 
typedef apr_redis_server_t *(* apr_redis_server_func) (void *baton, apr_redis_t *rc, const apr_uint32_t hash)
 

Enumerations

enum  apr_redis_server_status_t { APR_RC_SERVER_LIVE, APR_RC_SERVER_DEAD }
 
enum  apr_redis_server_role_t { APR_RS_SERVER_MASTER, APR_RS_SERVER_SLAVE, APR_RS_SERVER_UNKNOWN }
 

Functions

apr_uint32_t apr_redis_hash (apr_redis_t *rc, const char *data, const apr_size_t data_len)
 
apr_uint32_t apr_redis_hash_crc32 (void *baton, const char *data, const apr_size_t data_len)
 
apr_uint32_t apr_redis_hash_default (void *baton, const char *data, const apr_size_t data_len)
 
apr_redis_server_tapr_redis_find_server_hash (apr_redis_t *rc, const apr_uint32_t hash)
 
apr_redis_server_tapr_redis_find_server_hash_default (void *baton, apr_redis_t *rc, const apr_uint32_t hash)
 
apr_status_t apr_redis_add_server (apr_redis_t *rc, apr_redis_server_t *server)
 
apr_redis_server_tapr_redis_find_server (apr_redis_t *rc, const char *host, apr_port_t port)
 
apr_status_t apr_redis_enable_server (apr_redis_t *rc, apr_redis_server_t *rs)
 
apr_status_t apr_redis_disable_server (apr_redis_t *rc, apr_redis_server_t *rs)
 
apr_status_t apr_redis_server_create (apr_pool_t *p, const char *host, apr_port_t port, apr_uint32_t min, apr_uint32_t smax, apr_uint32_t max, apr_uint32_t ttl, apr_uint32_t rwto, apr_redis_server_t **ns)
 
apr_status_t apr_redis_create (apr_pool_t *p, apr_uint16_t max_servers, apr_uint32_t flags, apr_redis_t **rc)
 
apr_status_t apr_redis_getp (apr_redis_t *rc, apr_pool_t *p, const char *key, char **baton, apr_size_t *len, apr_uint16_t *flags)
 
apr_status_t apr_redis_set (apr_redis_t *rc, const char *key, char *baton, const apr_size_t data_size, apr_uint16_t flags)
 
apr_status_t apr_redis_setex (apr_redis_t *rc, const char *key, char *baton, const apr_size_t data_size, apr_uint32_t timeout, apr_uint16_t flags)
 
apr_status_t apr_redis_delete (apr_redis_t *rc, const char *key, apr_uint32_t timeout)
 
apr_status_t apr_redis_version (apr_redis_server_t *rs, apr_pool_t *p, char **baton)
 
apr_status_t apr_redis_info (apr_redis_server_t *rs, apr_pool_t *p, char **baton)
 
apr_status_t apr_redis_incr (apr_redis_t *rc, const char *key, apr_int32_t inc, apr_uint32_t *new_value)
 
apr_status_t apr_redis_decr (apr_redis_t *rc, const char *key, apr_int32_t inc, apr_uint32_t *new_value)
 
apr_status_t apr_redis_ping (apr_redis_server_t *rs)
 
apr_status_t apr_redis_multgetp (apr_redis_t *rc, apr_pool_t *temp_pool, apr_pool_t *data_pool, apr_hash_t *values)
 
apr_status_t apr_redis_stats (apr_redis_server_t *rs, apr_pool_t *p, apr_redis_stats_t **stats)
 

Detailed Description

Typedef Documentation

Opaque redis client connection object

Redis Server Info Object

Enumeration Type Documentation

Enumerator
APR_RS_SERVER_MASTER 

Server is a master

APR_RS_SERVER_SLAVE 

Server is a slave

APR_RS_SERVER_UNKNOWN 

Server role is unknown

Specifies the status of a redis server

Enumerator
APR_RC_SERVER_LIVE 

Server is alive and responding to requests

APR_RC_SERVER_DEAD 

Server is not responding to requests

Function Documentation

apr_status_t apr_redis_add_server ( apr_redis_t rc,
apr_redis_server_t server 
)

Adds a server to a client object

Parameters
rcThe redis client object to use
serverServer to add
Remarks
Adding servers is not thread safe, and should be done once at startup.
Warning
Changing servers after startup may cause keys to go to different servers.
apr_status_t apr_redis_create ( apr_pool_t *  p,
apr_uint16_t  max_servers,
apr_uint32_t  flags,
apr_redis_t **  rc 
)

Creates a new redisd client object

Parameters
pPool to use
max_serversmaximum number of servers
flagsNot currently used
rclocation of the new redis client object
apr_status_t apr_redis_decr ( apr_redis_t rc,
const char *  key,
apr_int32_t  inc,
apr_uint32_t *  new_value 
)

Decrements a value

Parameters
rcclient to use
keynull terminated string containing the key
incnumber to decrement by
new_valuenew value after decrementing
apr_status_t apr_redis_delete ( apr_redis_t rc,
const char *  key,
apr_uint32_t  timeout 
)

Deletes a key from a server

Parameters
rcclient to use
keynull terminated string containing the key
timeouttime for the delete to stop other clients from adding
apr_status_t apr_redis_disable_server ( apr_redis_t rc,
apr_redis_server_t rs 
)

Disable a Server

Parameters
rcThe redis client object to use
rsServer to Disable
apr_status_t apr_redis_enable_server ( apr_redis_t rc,
apr_redis_server_t rs 
)

Enables a Server for use again

Parameters
rcThe redis client object to use
rsServer to Activate
apr_redis_server_t* apr_redis_find_server ( apr_redis_t rc,
const char *  host,
apr_port_t  port 
)

Finds a Server object based on a hostname/port pair

Parameters
rcThe redis client object to use
hostHostname of the server
portPort of the server
Returns
Server with matching Hostname and Port, or NULL if none was found.
apr_redis_server_t* apr_redis_find_server_hash ( apr_redis_t rc,
const apr_uint32_t  hash 
)

Picks a server based on a hash

Parameters
rcThe redis client object to use
hashHashed value of a Key
Returns
server that controls specified hash
See also
apr_redis_hash
apr_redis_server_t* apr_redis_find_server_hash_default ( void *  baton,
apr_redis_t rc,
const apr_uint32_t  hash 
)

server selection compatible with the standard Perl Client.

apr_status_t apr_redis_getp ( apr_redis_t rc,
apr_pool_t *  p,
const char *  key,
char **  baton,
apr_size_t *  len,
apr_uint16_t *  flags 
)

Gets a value from the server, allocating the value out of p

Parameters
rcclient to use
pPool to use
keynull terminated string containing the key
batonlocation of the allocated value
lenlength of data at baton
flagsany flags set by the client for this key
Returns
apr_uint32_t apr_redis_hash ( apr_redis_t rc,
const char *  data,
const apr_size_t  data_len 
)

Creates a crc32 hash used to split keys between servers

Parameters
rcThe redis client object to use
dataData to be hashed
data_lenLength of the data to use
Returns
crc32 hash of data
Remarks
The crc32 hash is not compatible with old redisd clients.
apr_uint32_t apr_redis_hash_crc32 ( void *  baton,
const char *  data,
const apr_size_t  data_len 
)

Pure CRC32 Hash. Used by some clients.

apr_uint32_t apr_redis_hash_default ( void *  baton,
const char *  data,
const apr_size_t  data_len 
)

hash compatible with the standard Perl Client.

apr_status_t apr_redis_incr ( apr_redis_t rc,
const char *  key,
apr_int32_t  inc,
apr_uint32_t *  new_value 
)

Increments a value

Parameters
rcclient to use
keynull terminated string containing the key
incnumber to increment by
new_valuenew value after incrementing
apr_status_t apr_redis_info ( apr_redis_server_t rs,
apr_pool_t *  p,
char **  baton 
)

Query a server's INFO

Parameters
rsserver to query
pPool to allocate answer from
batonlocation to store server INFO response string
apr_status_t apr_redis_multgetp ( apr_redis_t rc,
apr_pool_t *  temp_pool,
apr_pool_t *  data_pool,
apr_hash_t *  values 
)

Gets multiple values from the server, allocating the values out of p

Parameters
rcclient to use
temp_poolPool used for temporary allocations. May be cleared inside this call.
data_poolPool used to allocate data for the returned values.
valueshash of apr_redis_value_t keyed by strings, contains the result of the multiget call.
Returns
apr_status_t apr_redis_ping ( apr_redis_server_t rs)

Pings the server

Parameters
rsServer to ping
apr_status_t apr_redis_server_create ( apr_pool_t *  p,
const char *  host,
apr_port_t  port,
apr_uint32_t  min,
apr_uint32_t  smax,
apr_uint32_t  max,
apr_uint32_t  ttl,
apr_uint32_t  rwto,
apr_redis_server_t **  ns 
)

Creates a new Server Object

Parameters
pPool to use
hosthostname of the server
portport of the server
minminimum number of client sockets to open
smaxsoft maximum number of client connections to open
maxhard maximum number of client connections
ttltime to live in microseconds of a client connection
rwtor/w timeout value in seconds of a client connection
nslocation of the new server object
See also
apr_reslist_create
Remarks
min, smax, and max are only used when APR_HAS_THREADS
apr_status_t apr_redis_set ( apr_redis_t rc,
const char *  key,
char *  baton,
const apr_size_t  data_size,
apr_uint16_t  flags 
)

Sets a value by key on the server

Parameters
rcclient to use
keynull terminated string containing the key
batondata to store on the server
data_sizelength of data at baton
flagsany flags set by the client for this key
apr_status_t apr_redis_setex ( apr_redis_t rc,
const char *  key,
char *  baton,
const apr_size_t  data_size,
apr_uint32_t  timeout,
apr_uint16_t  flags 
)

Sets a value by key on the server

Parameters
rcclient to use
keynull terminated string containing the key
batondata to store on the server
data_sizelength of data at baton
timeouttime in seconds for the data to live on the server
flagsany flags set by the client for this key
apr_status_t apr_redis_stats ( apr_redis_server_t rs,
apr_pool_t *  p,
apr_redis_stats_t **  stats 
)

Query a server for statistics

Parameters
rsserver to query
pPool to allocate answer from
statslocation of the new statistics structure
apr_status_t apr_redis_version ( apr_redis_server_t rs,
apr_pool_t *  p,
char **  baton 
)

Query a server's version

Parameters
rsserver to query
pPool to allocate answer from
batonlocation to store server version string