Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-dev] Session Management with Redis

Hi all,

 

I want to use Redis as a backing for my sessions. I’ve seen https://github.com/Ovea/jetty-session-redis, but the five years since any commit doesn’t inspire much confidence. I’ve also seen https://dev.eclipse.org/mhonarc/lists/jetty-dev/msg02086.html, but was unable to find the fruits of Denis’ labour.

 

So I’m currently making a NoSqlSessionManager extension based on Redis. For this I’m looking at the Mongo implementation and trying to stay close to it. Doing that I struck some code I don’t understand. Hopefully somebody here can enlighten me?

 

In org.eclipse.jetty.nosql.mongodb.MongoSessionManager.refresh(NoSqlSession, Object), which as I understand exists to update a session in memory from a session on disk, session.doPutOrRemove(attr,value) is called (l. 406). If the manager’s savePeriod is -2, that results in a org.eclipse.jetty.nosql.NoSqlSession.save(boolean), which is used to update a session on disk from memory. This does not look right to me, but I might (very well) be mistaken. Any clues?

 

A little further on in the same method (l. 420) this sequence is called:

                        session.doPutOrRemove(str,null);

                        session.unbindValue(str,session.getAttribute(str));

I think the second call is equivalent to session.unbindValue(str, session.getAttribute(str));, but I’m not sure that that is what the authors meant. Can I do that or should it be:

                        Object o = session.getAttribute(str);

                        session.doPutOrRemove(str,null); // might also result in a save

                        session.unbindValue(str,o);

 

Any help is appreciated,

 

Groeten,

 

Friso

 


Back to the top