NAME
ShardedKV::Storage::Redis - Abstract base class for storing k/v pairs in Redis
VERSION
version 0.09
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_master_str
A hostname:port string pointing at the Redis master for this shard. Required.
redis_slave_strs
Array reference of hostname:port strings representing Redis slaves of the master. Currently unused, will eventually be used for either reading or master failover.
redis_master
The Redis
object that represents the master connection. Will be generated from the redis_master_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) 2012 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.