refactored updateClientPosition to use async
added ttl to the users set to keep redis clean from inactive projects
cursor data is stored in redis
changed the redis stuf to multi