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.

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):

    "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 ('MessagePack')"
        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 deserialization 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.

   "my $stuff = $obj->get($key)"
    Get a stuff from cache.

   "$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".

FAQ
  How to set binary or blessed object to cache?
    Default serializer using Data::MessagePack can't handle binary and
    blessed objects (for performance).

    If you want to set them. Most easiest way is to set constructor option
    `serializer` to 'Storable'.

    Or you can set constructor option `serialize_methods` for more frequency
    handling.

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.

