use redis to store session data instead of a shared object which doesnt work because of clustering.  almost an entire rewrite