I second the suggestion of Redis. If you need to federate the shared memory over multiple logically seperated banks of memory
you can use memcached*. If you're on a large shared memory NUMA machine and want to do
true shared memory via light weight threads, the scripting language
Qore may present some interesting options for you. It's very
perlish.
* updated