Data::Model::Driver::Memcached - storage driver for memcached protocol
package MyDB; use base 'Data::Model'; use Data::Model::Schema; use Data::Model::Driver::Memcached; my $dbi_connect_options = {}; my $driver = Data::Model::Driver::Memcached->new( memcached => Cache::Memcached::Fast->new({ servers => [ { address => "localhost:11211" }, ], }), ); base_driver $driver; install_model model_name => schema { .... };
Storage is used via a memcached protocol.
It can save at memcached, Tokyo Tyrant, kai, groonga, etc.
my $driver = Data::Model::Driver::Memcached->new( memcached => Cache::Memcached::Fast->new({ servers => [ { address => "localhost:11211" }, ], }), serializer => 'Default', # default is L<Data::MessagePack> or messagepack minimum set for Data::Model );
you can use customizable serializer.
{ package MySerializer; sub serialize { my($class, $c, $hash) = @_; # you serialize of $hash return $serialize_string; } sub deserialize { my($class, $c, $serialize_string) = @_; ... return $hash; } } my $driver = Data::Model::Driver::Memcached->new( memcached => Cache::Memcached::Fast->new({ servers => [ { address => "localhost:11211" }, ], }), serializer => '+MySerializer', );
strip tables key data, Because key data stored in a memcached key part.
my $driver = Data::Model::Driver::Memcached->new( memcached => Cache::Memcached::Fast->new({ servers => [ { address => "localhost:11211" }, ], }), strip_keys => 1, );
When value is undef, a value is not put into storage.
It becomes size saving at the time of obvious empty data.
my $driver = Data::Model::Driver::Memcached->new( memcached => Cache::Memcached::Fast->new({ servers => [ { address => "localhost:11211" }, ], }), ignore_undef_value => 1, );
compress your table name and column name.
my $driver = Data::Model::Driver::Memcached->new( memcached => Cache::Memcached::Fast->new({ servers => [ { address => "localhost:11211" }, ], namespace => 'test', }), serializer => 'Default', strip_keys => 1, ); install_model simple => schema { schema_options model_name_realname => 's'; key 'id'; column 'id'; column 'name'; column 'nickname'; schema_options column_name_rename => { id => 1, name => 2, nickname => 3, }; }; $model->set( simple => 'keyvalue' => { name => 'osawa', nickname => 'yappo', } ); # same code $memcached->add( 'tests:keyvalue', Data::MessagePack->pack({ 2 => 'osawa', 3 => 'yappo' }), );
Cache::Memcache::Fast, Data::Model
Kazuhiro Osawa <yappo <at> shibuya <döt> pl>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in '<döt>'. Assuming UTF-8
To install Data::Model, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::Model
CPAN shell
perl -MCPAN -e shell install Data::Model
For more information on module installation, please visit the detailed CPAN module installation guide.