NAME
Data::Model::Driver::Memcached - storage driver for memcached protocol
SYNOPSIS
package
MyDB;
use
Data::Model::Schema;
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 {
....
};
DESCRIPTION
Storage is used via a memcached protocol.
It can save at memcached, Tokyo Tyrant, kai, groonga, etc.
OPTIONS
serializer
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.
{
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_keys
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,
);
ignore_undef_value
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,
);
model_name_realname column_name_rename
compress your table name and column name.
OPTIONS EXAMPLE
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'
}),
);
SEE ALSO
Cache::Memcache::Fast, Data::Model
AUTHOR
Kazuhiro Osawa <yappo <at> shibuya <döt> pl>
LICENSE
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:
- Around line 543:
Non-ASCII character seen before =encoding in '<döt>'. Assuming UTF-8