Add and use the navigation groups extension
No, really
Use redis for caching and for reading sessions