The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Cache::Redis - Redis client specialized for cache

SYNOPSIS

use Cache::Redis;

my $cache = Cache::Redis->new(
    server    => 'localhost:9999',
    namespace => 'cache:',
);
$cache->set('key', 'val');
my $val = $cache->get('key');
$cache->remove('key');

DESCRIPTION

This module is for cache of Redis backend having Cache::Cache like interface.

THIS IS A DEVELOPMENT RELEASE. API MAY CHANGE WITHOUT NOTICE.

INTERFACE

Methods

my $obj = Cache::Redis->new(%options)

Create a new cache object. Various options may be set in %options, which affect the behaviour of the cache (defaults in parentheses):

redis

Instance of Redis class are used as backend. If this is not passed, Cache::Redis load from redis_class automatically.

redis_class ('Redis')

The class for backend.

default_expires_in (60*60*24 * 30)

The default expiration seconds for objects place in the cache.

namespace ('')

The namespace associated with this cache.

nowait (0)

If enabled, when you call a method that only returns its success status (like "set"), in a void context, it sends the request to the server and returns immediately, not waiting the reply. This avoids the round-trip latency at a cost of uncertain command outcome.

serializer ('Storable')

Serializer. 'MessagePack' and 'Storable' are usable. if `serialize_methods` option is specified, this option is ignored.

serialize_methods (undef)

The value is a reference to an array holding two code references for serialization and de-serialization routines respectively.

server (undef)

Redis server information. You can use `sock` option instead of this and can specify all other Redis constructor options to Cache::Cache->new method.

$obj->set($key, $value, $expire)

Set a stuff to cache.

$obj->set_multi([$key, $value, $expire], [$key, $value])

Set multiple stuffs to cache. stuffs is array reference.

my $stuff = $obj->get($key)

Get a stuff from cache.

my $res = $obj->get_multi(@keys)

Get multiple stuffs as hash reference from cache. @keys should be array. A key is not stored on cache don't be contain $res.

$obj->remove($key)

Remove stuff of key from cache.

$obj->get_or_set($key, $code, $expire)

Get a cache value for $key if it's already cached. If it's not cached then, run $code and cache $expiration seconds and return the value.

$obj->nowait_push

Wait all response from Redis. This is intended for $obj->nowait.

DEPENDENCIES

Perl 5.8.1 or later.

BUGS

All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.

SEE ALSO

perl

AUTHOR

Masayuki Matsuki <y.songmu@gmail.com>

LICENSE AND COPYRIGHT

Copyright (c) 2013, Masayuki Matsuki. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.