From e53f6756d15dd37b980862ca585a8c8433e869f1 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Fri, 2 Sep 2011 11:42:52 +0000 Subject: [PATCH] added memcache to store data in couchbase --- lib/CloudStore/memcache.pm | 33 +++++++++++++++++++++++++++++++++ t/memcache.t | 30 ++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 lib/CloudStore/memcache.pm create mode 100755 t/memcache.t diff --git a/lib/CloudStore/memcache.pm b/lib/CloudStore/memcache.pm new file mode 100644 index 0000000..bd4be08 --- /dev/null +++ b/lib/CloudStore/memcache.pm @@ -0,0 +1,33 @@ +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; diff --git a/t/memcache.t b/t/memcache.t new file mode 100755 index 0000000..0747d9d --- /dev/null +++ b/t/memcache.t @@ -0,0 +1,30 @@ +#!/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}--; +} + -- 2.20.1