NAME

Data::Session::Driver::Memcached - A persistent session manager

Synopsis

See Data::Session for details.

Description

Data::Session::Driver::Memcached allows Data::Session to manipulate sessions Cache::Memcached.

To use this module do both of these:

o Specify a driver of type Memcached, as Data::Session -> new(type => 'driver:Memcached ...')
o Specify a cache object of type Cache::Memcached as Data::Session -> new(cache => $object)

See scripts/memcached.pl.

Case-sensitive Options

See "Case-sensitive Options" in Data::Session for important information.

Method: new()

Creates a new object of type Data::Session::Driver::Memcached.

new() takes a hash of key/value pairs, some of which might mandatory. Further, some combinations might be mandatory.

The keys are listed here in alphabetical order.

They are lower-case because they are (also) method names, meaning they can be called to set or get the value at any time.

o cache => $object

Specifies the object of type Cache::Memcached to use for session storage.

This key is normally passed in as Data::Session -> new(cache => $object).

This key is mandatory.

o verbose => $integer

Print to STDERR more or less information.

Typical values are 0, 1 and 2.

This key is normally passed in as Data::Session -> new(verbose => $integer).

This key is optional.

Method: remove($id)

Deletes from storage the session identified by $id.

Returns the result of calling the Cache::Memcached method delete($id).

This result is a Boolean value indicating 1 => success or 0 => failure.

Method: retrieve($id)

Retrieve from storage the session identified by $id.

Returns the result of calling the Cache::Memcached method get($id).

This result is a frozen session. This value must be thawed by calling the appropriate serialization driver's thaw() method.

Data::Session calls the right thaw() automatically.

Method: store($id, $data, $time)

Writes to storage the session identified by $id, together with its data $data. The expiry time of the object is passed into the set() method of Cache::Memcached, too.

Returns the result of calling the Cache::Memcached method set($id, $data, $time).

This result is a Boolean value indicating 1 => success or 0 => failure.

Note: $time is 0 for sessions which don't expire. If you wish to pass undef or 'never', as per the Cache::Memcached documentation, you will have to subclass Cache::Memcached and override the set() method to change 0 to 'never'.

Method: traverse()

There is no mechanism (apart from memcached's debug code) to get a list of all keys in a cache managed by memcached, so there is no way to traverse them via this module.

Returns 1.

Installing memcached

        Get libevent from http://www.monkey.org/~provos/libevent/
        I used V 2.0.8-rc
        ./configure
        make && make verify
        sudo make install
        It installs into /usr/local/lib, so tell memcached where to look:
        LD_LIBRARY_PATH=/usr/local/lib
        export LD_LIBRARY_PATH

        Get memcached from http://memcached.org/
        I used V 1.4.5
        ./configure --with-libevent=/usr/local/lib
        make && make test
        sudo make install

        Running memcached:
        memcached -m 5 &

Support

Log a bug on RT: https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Session.

Author

Data::Session was written by Ron Savage <ron@savage.net.au> in 2010.

Home page: http://savage.net.au/index.html.

Copyright

Australian copyright (c) 2010, Ron Savage.

        All Programs of mine are 'OSI Certified Open Source Software';
        you can redistribute them and/or modify them under the terms of
        The Artistic License, a copy of which is available at:
        http://www.opensource.org/licenses/index.html