--- /dev/null
+package CloudStore::memcache;
+
+use Cache::Memcached;
+use JSON::XS;
+
+sub new {
+ my ($class) = @_;
+ my $server = new Cache::Memcached {
+ 'servers' => [ "127.0.0.1:11211" ],
+ 'debug' => 1,
+ # 'compress_threshold' => 10_000,
+ };
+ #$server->set_servers($array_ref);
+ #$server->set_compress_threshold(10_000);
+ $server->enable_compress(0);
+
+ my $self = { server => $server };
+ bless $self, $class;
+
+ return $self;
+}
+
+sub get {
+ my ($self,$k) = @_;
+ decode_json $self->{server}->get( $k );
+}
+
+sub set {
+ my ($self,$k,$v) = @_;
+ $self->{server}->set( $k => encode_json $v );
+}
+
+1;
--- /dev/null
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+use Test::More tests => 3;
+use Data::Dump qw(dump);
+
+use lib 'lib';
+
+use_ok 'CloudStore::memcache';
+
+my $r;
+
+ok( $r = CloudStore::memcache->new, 'server' );
+diag dump($r);
+
+my $data = { foo => 0, bar => 100 };
+
+for ( 0 .. $data->{bar} ) {
+ ok( $r->set( "test$_", $data), "set $_" );
+
+ ok( my $v = $r->get( "test$_" ), "get $_" );
+ diag dump($v);
+
+ is_deeply $v, $data, 'correct';
+
+ $data->{foo}++;
+ $data->{bar}--;
+}
+