We're using Redis as a backing store for sessions, because it's blindingly
fast and completely straightforward to deploy (on Debian/Ubuntu, 'sudo
apt-get install redis-server' is pretty well all you need to do). I did a
Redis implementation of the Cache and CacheManager classes, in Grails/Groovy
(but they should be easily translatable to straight Java).

In a short time, Redis will, I believe, have the feature you require, using
its publish/subscribe mechanism, so your application could subscribe to the
event which occurs when that session key expires. In the meantime, though,
you could easily do some kind of workaround using polling (which, given the
relatively small likely number of concurrent sessions and the sheer speed of
Redis, would be unlikely to have much overhead), whereby you maintain an
in-memory list of session keys and every 10 seconds, say, you loop through
this checking whether each one is still alive in Redis. If not, you can do
any clean-up you require and remove it from the list. 



--
View this message in context: 
http://shiro-user.582556.n2.nabble.com/EnterpriseCacheSessionDAO-Session-Expiry-and-Reporting-Session-State-tp7578194p7578203.html
Sent from the Shiro User mailing list archive at Nabble.com.

Reply via email to