Better Redis transaction design