NAME

Plack::Middleware::Throttle::Lite::Backend::Redis - Redis-driven storage backend for Throttle-Lite

VERSION

version 0.01

DESCRIPTION

This is implemetation of the storage backend for Plack::Middleware::Throttle::Lite. It uses redis-server to hold throttling data, automatically sets expiration time for stored keys to save memory consumption.

SYNOPSYS

# inside your app.psgi
enable 'Throttle::Lite',
    backend => [
        'Redis' => {
            server   => 'redis.example.com:6379',
            database => 1,
            password => 'VaspUtnuNeQuiHesGapbootsewWeonJadacVebEe'
        }
    ];

OPTIONS

This storage backend must be configured in order to use. All options should be passed as a hash reference. The following options are available to tune it for your needs.

server

A string consist of a hostname (or an IP address) and port number (delimited with a colon) of the redis-server instance to connect to. You have to point either this one or "sock". Warning! This option has lower priority than "sock".

sock

A unix socket path of the redis-server instance to connect to. You have to point either this one or "server". Warning! This option has higher priority than "server".

database

A redis-server database number to store throttling data. Not obligatory option. If this one omitted then value 0 will be assigned.

password

Password string for redis-server's AUTH command to processing any other commands. Optional. Check the redis-server manual for directive requirepass if you would to use redis internal authentication.

reconnect

A time (in seconds) to re-establish connection to the redis-server before an exception will be raised. Not required. Default value is 10 sec.

every

Interval (in milliseconds) after which will be an attempt to re-establish lost connection to the redis-server. Not required. Default value is 100 ms.

debug

Enables debug information to STDERR, including all interactions with the redis-server. Not required. Default value is 0 (disabled).

METHODS

redis

Returns a redis connection handle.

rdb

A redis database number to store data.

init

See "ABSTRACT METHODS" in Plack::Middleware::Throttle::Lite::Backend::Abstract

reqs_done

See "ABSTRACT METHODS" in Plack::Middleware::Throttle::Lite::Backend::Abstract

increment

See "ABSTRACT METHODS" in Plack::Middleware::Throttle::Lite::Backend::Abstract

BUGS

Please report any bugs or feature requests through the web interface at https://github.com/Wu-Wu/Plack-Middleware-Throttle-Lite-Backend-Redis/issues

SEE ALSO

Redis

Plack::Middleware::Throttle::Lite

Plack::Middleware::Throttle::Lite::Backend::Abstract

AUTHOR

Anton Gerasimov <chim@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Anton Gerasimov.

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