views:

204

answers:

2

I'm trying to find an alternative to the Cache::Memcached Perl module that works with Windows XP. Or, to somehow get Cache::Memcached working on Windows XP.

A bit of background: the production environtment (web server) is Solaris 10, which I've already installed memcached and Cache::Memcached, and all works fine. However, the development PC is Windows XP, and Cache::Memcached won't install properly, and definitely doesn't work. See:

cpantesters.org report on Cache::Memcached

same error that I receive

Perl version: This is perl, v5.10.1 built for MSWin32-x86-multi-thread

Note: Changing the development environment to Unix / Linux is not an option at this point. Would consider other Perl based caching options suitable for a web environment.

+1  A: 

Here is a solution, that may take a bit extra work, but is do-able.

Create a custom daemon script as a host for your memory cache, then using Win32::Pipe, turn it into a pipe server. Using NamedPipes, your client scripts can then connect to it and perform transactions (eg. store/retrieve data/memory ).

If you want to get fancy, you can find Win32 extensions, to create a Win32 Service for your daemon, so it loads automatically on boot.

You can download the current version of Win32::Pipe, and see examples @ http://www.roth.net/perl/pipe/ .

Note: the Win32::Pipe module that comes with the ActiveState Perl distribution, is no good.

JerA
+1  A: 

If you are caching strings / scalar types and not serializing / deserializing objects, you might be able to get away with calling the memcached client directly from sockets on the development box. The memcached protocol is very simple and if you're mostly trying to verify caching behavior you wouldn't need a persistent connection to the memcached demon and could get away with 'send message to socket... get single response' as an operational model.

corprew