NAME

ShardedKV::Storage::Redis - Abstract base class for storing k/v pairs in Redis

VERSION

version 0.15

SYNOPSIS

# use a subclass instead

DESCRIPTION

This class consumes the ShardedKV::Storage role. It is an abstract base class for storing key-value pairs in Redis. It does not actually implement the get() and set() methods and does not impose a Redis value type. Different subclasses of this class are expected to represent different storages for distinct Redis value types.

PUBLIC ATTRIBUTES

redis_connect_str

A hostname:port string pointing at the Redis for this shard. Required.

redis

The Redis object that represents the connection. Will be generated from the redis_connect_str attribute and may be reset/reconnected at any time.

expiration_time

Base key expiration time to use in seconds. Defaults to undef / not expiring at all.

expiration_time_jitter

Additional random jitter to add to the expiration time. Defaults to 0. Don't set to undef to disable, set to 0 to disable.

database_number

Indicates the number of the Redis database to use for this shard. If undef/non-existant, no specific database will be selected, so the Redis server will use the default.

PUBLIC METHODS

delete

Implemented in the base class, this method deletes the given key from the Redis shard.

get

Not implemented in the base class. This method is supposed to fetch a value back from Redis. Beware: Depending on the ShardedKV::Storage::Redis subclass, the reference type that this method returns may vary. For example, if you use ShardedKV::Storage::Redis::String, the return value will be a scalar reference to a string. For ShardedKV::String::Redis::Hash, the return value is unsurprisingly a hash reference.

set

The counterpart to get. Expects values as second argument. The value must be of the same reference type that is returned by get().

SEE ALSO

AUTHORS

  • Steffen Mueller <smueller@cpan.org>

  • Nick Perez <nperez@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Steffen Mueller.

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